การทับศัพท์ คือการดำเนินการแปลงข้อความจากระบบการเขียนหรือภาษาหนึ่งไปสู่อีกระบบหนึ่งอย่างมีหลักการ เพื่อให้สามารถเขียนคำในภาษาต่างประเทศด้วยภาษาและอักษรในภาษานั้น ๆ ได้สะดวก เช่น การทับศัพท์ภาษาอังกฤษซึ่งเขียนด้วยอักษรโรมัน มาเป็นอักษรไทยเพื่อใช้ในภาษาไทย หรือการทับศัพท์ภาษาไทย ไปเป็นอักษรโรมันเพื่อใช้ในภาษาอังกฤษ เป็นต้น ส่วนมากใช้กับวิสามานยนาม อาทิ ชื่อบุคคล สถานที่ หรือชื่อเฉพาะที่ไม่สามารถแปลความหมายเป็นภาษาอื่นได้โดยสะดวก
ปกติแล้วการทับศัพท์คือการจับคู่จากระบบการเขียนหนึ่งไปยังอีกระบบหนึ่งแบบคำต่อคำ หรือตามทฤษฎีคืออักษรต่ออักษร การทับศัพท์ได้พยายามที่จะสร้างความสัมพันธ์หนึ่งต่อหนึ่งทั่วถึงและทำให้เกิดความถูกต้องแม่นยำ เพื่อให้ผู้อ่านที่ได้รับรู้สามารถสะกดคำต้นฉบับจากคำทับศัพท์ได้ และเพื่อบรรลุจุดประสงค์นี้ จึงมีการกำหนดหลักการทับศัพท์ที่ซับซ้อนในการจัดการกับตัวอักษรบางตัวในภาษาต้นฉบับที่ไม่สัมพันธ์กับอักษรในภาษาเป้าหมาย ความหมายอย่างแคบของการทับศัพท์คือ การทับศัพท์แบบถอดอักษร (transliteration) ซึ่งเคร่งครัดในการคงตัวอักษรและเครื่องหมายวรรคตอนทุกอย่างเอาไว้ ทั้งนี้การถอดอักษรไม่สนใจความแตกต่างของเสียงในภาษา ตัวอย่างหนึ่งของการถอดอักษรคือการใช้แป้นพิมพ์ภาษาอังกฤษ พิมพ์แทนภาษาอื่นที่ใช้ตัวอักษรต่างออกไปเช่นภาษารัสเซียเนื่องจากมีข้อจำกัดทางเทคนิค หรือการถอดอักษรโบราณเพื่อให้ยังคงรักษารูปแบบการเขียนเดิมเอาไว้
การทับศัพท์ (การถอดอักษร) ต่างจากการถอดเสียง (transcription) ซึ่งเป็นการจับคู่เสียงอ่านของภาษาหนึ่ง ๆ ไปยังรูปแบบการเขียนของอีกภาษาที่ใกล้เคียงที่สุด ถึงแม้ว่าระบบการถอดอักษรส่วนใหญ่จะยังคงจับคู่อักษรต้นฉบับกับอักษรในภาษาเป้าหมายที่ออกเสียงคล้ายกันในบางคู่ ถ้าหากความสัมพันธ์ระหว่างตัวอักษรกับเสียงเหมือนกันทั้งสองภาษา การถอดอักษรก็อาจแทบจะเหมือนกับการถอดเสียง ในทางปฏิบัติ ก็มีการทับศัพท์บางระบบที่ผสมกันระหว่างการถอดอักษรและการถอดเสียง โดยจะถอดอักษรต้นฉบับบางส่วนและถอดเสียงในส่วนที่เหลือ การถอดเสียงจะพยายามหาแนวทางที่ดีที่สุดในการเขียนภาษาต่างประเทศให้เป็นภาษาเฉพาะ เช่นการเขียนคำในภาษาอังกฤษเป็นภาษาไทยโดยไม่สลับภาษาบนแป้นพิมพ์ (บางครั้งผู้ใช้งานอาจพบว่าการกระทำเช่นนี้อาจทำให้อ่านเข้าใจยากกว่าการพิมพ์โดยสลับภาษาตามปกติ) การถอดเสียงขณะพิมพ์จึงถือเป็นกระบวนการประยุกต์โดยแท้จริงเพื่อการป้อนข้อความในภาษาเฉพาะเช่นนั้น แต่ก็มีข้อเสียคืออาจทำให้ไม่สามารถคาดเดาเพื่อถอดกลับไปเป็นภาษาเดิมได้ เพราะมีอักษรที่เพิ่มเข้ามาหรือถูกตัดออกไป หรือเปลี่ยนแปลงรูปแบบจนไม่เหลือเค้าโครงเดิม ความหมายอย่างกว้างของการทับศัพท์จึงหมายรวมทั้งการทับศัพท์แบบถอดอักษรและการทับศัพท์แบบถอดเสียง
นอกจากนี้ ไม่ควรสับสนระหว่างการทับศัพท์กับการแปล ซึ่งเกี่ยวข้องกับการเปลี่ยนหรือเลือกคำในภาษาเพื่อสงวนความหมายดั้งเดิมเอาไว้ ในขณะที่การทับศัพท์เป็นการแปลงตัวอักษรเท่านั้น
ราชบัณฑิตยสถานได้ประกาศหลักการทับศัพท์ไว้อย่างเป็นทางการ ทั้งจากภาษาอังกฤษไปเป็นภาษาไทย ซึ่งเป็นการทับศัพท์แบบผสมทั้งถอดอักษรและถอดเสียง และจากอักษรไทยไปเป็นอักษรโรมัน ซึ่งเป็นการถอดเสียงเท่านั้น
ในการทับศัพท์จากภาษาอังกฤษเป็นภาษาไทย อักษรโรมันหลายตัวสามารถถอดด้วยอักษรไทยแบบหนึ่งต่อหนึ่ง เช่น d=ด, r=ร, l=ล, f=ฟ เป็นต้น และสามารถแปลงกลับได้ตัวเดิม แต่ก็มีอักษรโรมันบางตัวที่สามารถอ่านได้หลายเสียงในภาษาอังกฤษ หรือไม่มีเสียงที่เหมือนกันในอักษรไทย ส่วนนี้จึงต้องใช้การถอดเสียงเข้าช่วย โดยเฉพาะกับอักษรที่เป็นสระ เช่น a อาจเทียบเท่ากับเสียง เออะ อะ อา เอ แอ ออ หรือทวิอักษร th ที่ออกเสียงเป็น /?/, /?/ ก็ต้องดูว่าต้นฉบับอ่านอย่างไรจึงจะสามารถทับศัพท์ได้ใกล้เคียงที่สุด ส่วนนี้จึงมักจะเป็นปัญหาอันเนื่องจากแต่ละคนอ่านไม่เหมือนกันหรืออ่านด้วยต่างสำเนียง ตัวอย่างเช่น tube ภาษาอังกฤษแบบอเมริกันอ่านว่า /tub/ จึงทับศัพท์ว่า ทูบ ส่วนภาษาอังกฤษแบบบริเตนอ่านว่า /tyub/ จึงทับศัพท์ว่า ทิวบ์ หรือในกรณีที่ยึดถือหลักการทับศัพท์ต่างกัน เช่น theta อาจทับศัพท์เป็น ทีตา, ธีตา, เธตา, ซีตา, เซตา ซึ่งเป็นการทับศัพท์ตามใจและไม่มีหลักที่แน่นอน อย่างไรก็ตาม คำทับศัพท์ภาษาอังกฤษบางคำก็ได้รับการบรรจุลงในพจนานุกรมภาษาไทย เพื่อกำหนดการสะกดคำในภาษาให้ตรงตามพจนานุกรมอย่างถาวร และถือว่าเป็นคำยืมในภาษาไทย
ส่วนการถอดอักษรไทยเป็นอักษรโรมัน ถึงแม้อักษรไทยบางตัวจะสามารถแทนได้ด้วยอักษรโรมันแบบหนึ่งต่อหนึ่งได้เช่นกัน แต่ก็มีอักษรไทยจำนวนมากที่กำหนดให้แทนด้วยอักษรตัวเดียวกัน หรือต้องใช้อักษรโรมันมากกว่าหนึ่งตัวเข้ามาประกอบ เช่น ฐ-ฑ-ฒ-ถ-ท-ธ=th, ง=ng, สระเอือ=uea บางครั้งพยัญชนะต้นและพยัญชนะสะกดก็ใช้อักษรโรมันต่างกันด้วย เช่น บ ถ้าเป็นพยัญชนะต้นใช้ b ถ้าเป็นพยัญชนะสะกดใช้ p เมื่อแปลงอักษรไปทั้งหมดแล้วทำให้ไม่สามารถถอดกลับมาเป็นอักษรไทยอย่างเดิมได้ และอาจทำให้คำอ่านเพี้ยนไปบ้าง ตัวอย่างเช่น บางกอก ทับศัพท์ได้เป็น Bangkok แต่ชาวต่างประเทศอาจจะอ่านว่า แบงค็อก ซึ่งก็เป็นเพียงเสียงอ่านที่ใกล้เคียงเท่านั้น ไม่ใช่เสียงที่แท้จริง
นอกจากนี้ยังมีมาตรฐาน ISO 11940 สำหรับการถอดอักษรจากอักษรไทยไปเป็นอักษรโรมัน แต่ระบบนี้ก็ไม่เป็นที่นิยมใช้ เนื่องจากไม่เป็นไปตามอักขรวิธี คือเมื่อถอดอักษรไปแล้วอาจจะอ่านไม่ออกไปเลย เช่น เครื่อง เมื่อถอดอักษรด้วยระบบนี้จะได้ ekhr???xng ซึ่งสามารถแปลงกลับเป็นคำเดิมได้แต่อ่านไม่ได้ ในขณะที่หลักของราชบัณฑิตยสถานทับศัพท์ได้ว่า khrueang ซึ่งพออ่านได้บ้าง