Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

อะไรคือความแตกต่างระหว่างสตริงและสตริงไบต์ใน Python?


สตริงคือลำดับของอักขระ สิ่งเหล่านี้เป็นแนวคิดที่เป็นนามธรรม และไม่สามารถจัดเก็บบนดิสก์ได้โดยตรง สตริงไบต์คือลำดับของไบต์ - สิ่งที่สามารถเก็บไว้ในดิสก์ได้ การจับคู่ระหว่างทั้งสองเป็นการเข้ารหัส - มีหลายสิ่งเหล่านี้ (และเป็นไปได้อย่างไม่สิ้นสุด) - และคุณจำเป็นต้องรู้ว่าข้อใดใช้ในกรณีเฉพาะเพื่อทำการแปลง เนื่องจากการเข้ารหัสที่แตกต่างกันอาจจับคู่ไบต์เดียวกัน ไปยังสตริงอื่น ตัวอย่างเช่น สตริงไบต์เดียวกันสามารถแสดง 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() ของสตริงอักขระไปในทางตรงข้ามและเข้ารหัสสตริงอักขระเป็นสตริงไบต์