สตริง (string) คือลำดับของตัวอักษร (characters) ซึ่งเป็นแนวคิดเชิงนามธรรม ไม่สามารถจัดเก็บลงดิสก์ได้โดยตรง สตริงไบต์ (byte string) คือลำดับของไบต์ (bytes) — สิ่งที่จัดเก็บลงดิสก์ได้ การแมปปิงระหว่างทั้งสองคือ เอนโคดดิ้ง (encoding) — มีหลายรูปแบบ (และเป็นไปได้อันไม่รู้จบ) และคุณต้องทราบว่าเอนโคดดิ้งใดใช้ในกรณีเฉพาะ เพื่อทำการแปลง เนื่องจากเอนโคดดิ้งที่ต่างกันอาจแมปไบต์เดียวกันไปยังสตริงที่ต่างกัน ตัวอย่างเช่น สตริงไบต์เดียวกันสามารถแทนสตริง 2 แบบที่ต่างกันใน 2 เอนโคดดิ้ง:
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
'蓏콯캁澽苏'
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
'τoρνoς'เมื่อทราบเอนโคดดิ้งที่ถูกต้องแล้ว สามารถใช้เมธอด .decode() ของสตริงไบต์เพื่อได้สตริงตัวอักษรที่ถูกต้อง เมธอด .encode() ของสตริงตัวอักษรทำทางตรงข้าม คือ เข้ารหัสสตริงตัวอักษรเป็นสตริงไบต์