POSIX รองรับการเข้ารหัสอักขระใดบ้าง


11

POSIX กำหนดพฤติกรรมของเครื่องมือเช่นgrep, awk, sedฯลฯ ซึ่งการทำงานกับไฟล์ข้อความ เนื่องจากเป็นไฟล์ข้อความฉันคิดว่ามีปัญหาในการเข้ารหัสอักขระ

คำถาม:

  • การเข้ารหัสอักขระรองรับ POSIX คืออะไร (หรือไฟล์ข้อความของระบบเข้ารหัสที่ POSIX สามารถจัดการได้)

คำตอบ:


19

ไม่มีการเข้ารหัสอักขระเฉพาะที่กำหนดโดย POSIX อักขระเพียงตัวเดียวในตำแหน่งที่คงที่คือ null ซึ่งต้องเป็น 00

สิ่งที่ POSIX ต้องการคือมีอักขระทั้งหมดจากชุดอักขระพกพาอยู่ ชุดอักขระพกพาประกอบด้วยอักขระ ASCII ที่พิมพ์ได้, ช่องว่าง, BEL, Backspace, แท็บ, การขึ้นบรรทัดใหม่, การขึ้นบรรทัดใหม่, แท็บแนวตั้ง, ฟีดฟอร์มและ null ไม่ได้ระบุตำแหน่งที่และวิธีเข้ารหัสเหล่านั้นยกเว้นว่า:

  • พวกเขาทั้งหมดเป็นไบต์เดียว (8 บิต)
  • Null แสดงด้วยบิตทั้งหมดเป็นศูนย์
  • ตัวเลข 0-9 ปรากฏอย่างต่อเนื่องในลำดับนั้น

มันไม่มีข้อ จำกัด อื่น ๆ เกี่ยวกับการเป็นตัวแทนของตัวละครดังนั้นระบบที่สอดคล้องเป็นอิสระที่จะสนับสนุนการเข้ารหัสด้วยการเป็นตัวแทนของตัวละครเหล่านั้นและตัวละครอื่น ๆ นอกจากนี้

โลแคลที่แตกต่างกันในระบบเดียวกันสามารถมีการแสดงอักขระที่แตกต่างกันยกเว้น.และ/และ

หากแอปพลิเคชันใช้คู่ของโลแคลใด ๆ ที่การเข้ารหัสอักขระแตกต่างกันหรือเข้าถึงข้อมูลจากแอปพลิเคชันโดยใช้โลแคลที่มีการเข้ารหัสแตกต่างจากโลแคลที่ใช้โดยแอปพลิเคชันผลลัพธ์จะไม่ถูกระบุ

ไฟล์เดียวที่ระบบ POSIX ทุกระบบจะต้องปฏิบัติต่อในลักษณะเดียวกันคือไฟล์ที่ประกอบด้วย null ทั้งหมด ไฟล์ที่ได้รับการรักษาเป็นข้อความได้ของพวกเขาบรรทัดยกเลิกโดยการเป็นตัวแทนการเข้ารหัสของอักขระ newline PCS ของ


5

มาตรฐาน POSIX แนะนำโลแคล POSIX ซึ่งมีลำดับเดียวกับชุดอักขระ ASCII สำหรับอักขระใน ASCII (นิยามฐาน POSIX §7.3.2)

นอกจากนั้นในระบบที่POSIX2_LOCALEDEFมีการกำหนดค่าคงที่เชิงสัญลักษณ์(ซึ่งจะถูกกำหนดสำหรับระบบที่สอดคล้องกับ XSI และสามารถทดสอบผ่านgetconf POSIX2_LOCALEDEF) ระบบสนับสนุนการสร้างตำแหน่งที่ตั้งใหม่โดยใช้localedefยูทิลิตี้และนิยามสถานที่ตามที่ระบุไว้ในฐาน POSIX คำจำกัดความ§7.3

นิยามโลแคล POSIX ไม่สนับสนุนการระบุอักขระด้วยค่า Unicode ของพวกเขามีมาตรฐานที่ใหม่กว่าเช่น ISO / IEC TR 14652 (มีให้ที่บ้านISO / IEC JTC1 / SC22 / WG20 ) และ ISO TR 30112 (ฉบับร่างมีอยู่ที่ISO / IEC JTC1 / SC35 / WG5 ) ซึ่งล้าสมัย ISO / IEC TR 14652

มาตรฐานอื่น ๆ ที่เกี่ยวข้องเป็น ISO 14651 (สามารถดูได้ที่เว็บไซต์ ISO ITTF ) และเปรียบเทียบ Unicode อัลกอริทึม (UCA, Unicode UTS # 10)

Unicode :: แย่งชิง Perl โมดูลที่ CPAN รวมถึง Unicode ปรับเปลี่ยนของสาธารณูปโภค Unix หลาย สคริปต์ sed และ awk และหนึ่ง liners สามารถ (ค่อนข้างง่าย) สามารถเขียนใหม่ในการสนับสนุน Perl สำหรับ Unicode

สำหรับ glibc รายการ bugzilla สำหรับ component localedataสามารถจัดเตรียมมุมมองสถานะของโลแคลที่ต่างกัน


3
หมายเหตุว่า POSIX สถานที่สั่งซื้อกำหนดเรียงเพื่อ ASCII จับคู่มากกว่าการเป็นตัวแทนการเข้ารหัสที่เกิดขึ้นจริง
Michael Homer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.