สัตว์เลี้ยงของฉันกำลังมองหาโครงการซอฟต์แวร์จำนวนมากที่มีภูเขาของรหัสสำหรับการสนับสนุนชุดอักขระ อย่าเข้าใจฉันผิดฉันทุกคนเข้ากันได้และฉันดีใจที่ผู้แก้ไขข้อความให้คุณเปิดและบันทึกไฟล์ในชุดอักขระหลายชุด สิ่งที่ทำให้ฉันรำคาญคือการแพร่กระจายของการเข้ารหัสอักขระที่ไม่ใช่สากลนั้นมีชื่อว่า "การสนับสนุน Unicode ที่เหมาะสม" แทนที่จะเป็น "ปัญหา"
ตัวอย่างเช่นสมมติฉันเลือกใน PostgreSQL และสนับสนุนชุดอักขระ PostgreSQL เกี่ยวข้องกับการเข้ารหัสสองประเภท:
- การเข้ารหัสไคลเอ็นต์: ใช้ในการสื่อสารระหว่างไคลเอ็นต์และเซิร์ฟเวอร์
- การเข้ารหัสเซิร์ฟเวอร์: ใช้เพื่อจัดเก็บข้อความภายในฐานข้อมูล
ฉันสามารถเข้าใจได้ว่าทำไมการสนับสนุนการเข้ารหัสลูกค้าจำนวนมากเป็นสิ่งที่ดี ช่วยให้ลูกค้าที่ไม่ทำงานใน UTF-8 สามารถสื่อสารกับ PostgreSQL โดยไม่จำเป็นต้องทำการแปลง สิ่งที่ฉันไม่ได้รับคือ: ทำไม PostgreSQL จึงรองรับการเข้ารหัสเซิร์ฟเวอร์หลายเครื่อง ไฟล์ฐานข้อมูล (เกือบทุกครั้ง) ไม่สามารถใช้งานร่วมกันได้จากรุ่น PostgreSQL หนึ่งไปยังรุ่นถัดไปดังนั้นความเข้ากันได้ข้ามรุ่นจึงไม่ใช่ปัญหาที่นี่
UTF-8 เป็นชุดอักขระมาตรฐานที่เข้ากันได้กับ ASCII เท่านั้นที่สามารถเข้ารหัสรหัสสถานี Unicode ทั้งหมด (ถ้าฉันผิดให้ฉันรู้) ฉันอยู่ในค่ายที่ UTF-8 เป็นชุดตัวละครที่ดีที่สุดแต่ฉันก็ยินดีที่จะใส่ชุดอักขระสากลอื่น ๆ เช่น UTF-16 และ UTF-32
ฉันเชื่อว่าชุดอักขระที่ไม่ใช่สากลควรเลิกใช้แล้ว มีเหตุผลที่น่าสนใจที่พวกเขาไม่ควร?