อ่าน 4 นาที
ความเท่าเทียมกันของยูนิโค้ด
ความเท่าเทียมกันของยูนิโค้ด คือข้อกำหนดใน มาตรฐานการเข้ารหัส อักขระ ยูนิโค้ด ที่ระบุ ว่า ลำดับของ รหัส บางลำดับ แทนอักขระเดียวกันโดยพื้นฐาน...
ความเท่าเทียมกันของยูนิโค้ด
ความเท่าเทียมกันของยูนิโค้ดคือข้อกำหนดใน มาตรฐานการเข้ารหัส อักขระยูนิโค้ด ที่ระบุ ว่า ลำดับของรหัส บางลำดับ แทนอักขระเดียวกันโดยพื้นฐาน คุณสมบัตินี้ถูกนำมาใช้ในมาตรฐานเพื่อให้สามารถใช้งานร่วมกับชุดอักขระ มาตรฐานที่มีอยู่ก่อนแล้ว ซึ่งมักจะมีอักขระที่คล้ายคลึงกันหรือเหมือนกัน
Unicode มีแนวคิดสองประการดังกล่าว ได้แก่ ความเท่าเทียมกันตามหลักการ (canonical equivalence) และความเข้ากันได้ (compatibility) ลำดับ ของรหัสอักขระที่ถูกกำหนดว่า มี ความเท่าเทียมกันตามหลักการจะถือว่ามีลักษณะและความหมายเหมือนกันเมื่อพิมพ์หรือแสดงผล ตัวอย่างเช่น รหัสอักขระU+006E n LATIN SMALL LETTER Nตามด้วยU+0303 ◌̃ COMBINING TILDEถูกกำหนดโดย Unicode ว่ามีความเท่าเทียมกันตามหลักการกับรหัสอักขระเดี่ยวU+00F1 ñ LATIN SMALL LETTER N WITH TILDEดังนั้น ลำดับเหล่านี้ควรแสดงผลในลักษณะเดียวกัน ควรได้รับการประมวลผลในลักษณะเดียวกันโดยแอปพลิเคชันต่างๆ เช่น การเรียงลำดับชื่อ ตามตัวอักษรหรือการค้นหาและสามารถใช้แทนกันได้ ในทำนองเดียวกัน บล็อกพยางค์ ฮันกุล แต่ละ บล็อกที่เข้ารหัสเป็นอักขระเดี่ยว อาจเข้ารหัสได้อย่างเท่าเทียมกันโดยการรวมกันของ jamo ที่เชื่อมต่อด้านหน้า jamo ที่เชื่อมต่อสระ และ jamo ที่เชื่อมต่อด้านหลัง (ถ้าเหมาะสม)
ลำดับที่ถูกกำหนดว่าเข้ากันได้นั้น สันนิษฐานว่าอาจมีลักษณะที่แตกต่างกัน แต่มีความหมายเดียวกันในบางบริบท ตัวอย่างเช่นU+FB00 ff LATIN SMALL LIGATURE FFซึ่งเป็นตัวเชื่อมตัวอักษรถูกกำหนดว่าเข้ากันได้กับ แต่ไม่เทียบเท่ากับลำดับ U+0066 U+0066 (ตัวอักษร "f" สองตัวในภาษาละติน) ลำดับที่เข้ากันได้อาจได้รับการปฏิบัติในลักษณะเดียวกันในบางแอปพลิเคชัน (เช่นการเรียงลำดับและการทำดัชนี ) แต่ไม่ใช่ในแอปพลิเคชันอื่น และอาจใช้แทนกันได้ในบางสถานการณ์ แต่ไม่ใช่ในสถานการณ์อื่น ลำดับที่เทียบเท่ากันตามหลักการก็เข้ากันได้ด้วย แต่ในทางกลับกันนั้นไม่จำเป็นต้องเป็นจริงเสมอไป
มาตรฐานนี้ยังกำหนด ขั้นตอน การทำให้ข้อความเป็น มาตรฐาน เรียกว่าการทำให้เป็นมาตรฐานยูนิโค้ด (Unicode normalization ) ซึ่งจะแทนที่ลำดับของอักขระที่เทียบเท่ากัน เพื่อให้ข้อความสองข้อความใดๆ ที่เทียบเท่ากัน จะถูกลดทอนให้เหลือลำดับของจุดรหัสเดียวกัน ซึ่งเรียกว่ารูปแบบการทำให้เป็นมาตรฐานหรือรูปแบบปกติของข้อความต้นฉบับ สำหรับแนวคิดเรื่องความเทียบเท่าทั้งสองแบบ ยูนิโค้ดกำหนดรูปแบบปกติไว้สองแบบ แบบหนึ่งเป็นแบบประกอบสมบูรณ์ (โดยที่จุดรหัสหลายจุดจะถูกแทนที่ด้วยจุดรหัสเดียวเมื่อใดก็ตามที่เป็นไปได้) และอีกแบบหนึ่งเป็นแบบแยกสมบูรณ์ (โดยที่จุดรหัสเดียวจะถูกแบ่งออกเป็นหลายจุด)
แหล่งที่มาของความเท่าเทียมกัน
การทำซ้ำตัวอักษร
เพื่อความเข้ากันได้หรือเหตุผลอื่นๆ บางครั้ง Unicode จะกำหนดรหัสสองจุดที่แตกต่างกันให้กับอักขระที่เหมือนกันโดยพื้นฐาน ตัวอย่างเช่น ตัวอักษร "A ที่มีวงแหวนอยู่ด้านบน" จะถูกเข้ารหัสเป็นU+00C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE (ตัวอักษรในภาษาสวีเดนและภาษา อื่นๆ อีกหลายภาษา ) หรือเป็นU+212B Å ANGSTROM SIGNอย่างไรก็ตาม สัญลักษณ์สำหรับอังสตรอมถูกกำหนดให้เป็นตัวอักษรสวีเดนตัวนั้น และสัญลักษณ์อื่นๆ ส่วนใหญ่ที่เป็นตัวอักษร (เช่น⟨V⟩สำหรับโวลต์ ) ไม่มีรหัสจุดแยกต่างหากสำหรับการใช้งานแต่ละครั้ง โดยทั่วไปแล้ว รหัสจุดของอักขระที่เหมือนกันอย่างแท้จริงจะถูกกำหนดให้เทียบเท่ากันตามหลักการ
การรวมและการประกอบตัวอักษรล่วงหน้า
เพื่อให้สอดคล้องกับมาตรฐานเก่าบางประการ ยูนิโค้ดจึงกำหนดรหัสจุดเดียวสำหรับอักขระหลายตัวที่อาจมองได้ว่าเป็นรูปแบบที่ดัดแปลงมาจากอักขระอื่น (เช่น U+00F1 สำหรับ "ñ" หรือ U+00C5 สำหรับ "Å") หรือเป็นการรวมกันของอักขระสองตัวขึ้นไป (เช่น U+FB00 สำหรับอักษรเชื่อมffหรือ U+0132 สำหรับอักษรดัตช์ij )
เพื่อให้สอดคล้องกับมาตรฐานอื่นๆ และมีความยืดหยุ่นมากขึ้น Unicode จึงมีรหัสสำหรับองค์ประกอบหลายอย่างที่ไม่ใช้ด้วยตัวเอง แต่มีไว้เพื่อแก้ไขหรือรวมกับอักขระพื้นฐาน ที่อยู่ข้างหน้า ตัวอย่างของอักขระรวม เหล่านี้ ได้แก่U+0303 ◌̃ COMBINING TILDEและเครื่องหมายกำกับ เสียง ภาษาญี่ปุ่นdakuten ( U+3099 ◌゙COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK )
ในบริบทของยูนิโค้ดการประกอบอักขระคือกระบวนการแทนที่จุดรหัสของตัวอักษรพื้นฐานตามด้วยอักขระรวมหนึ่งตัวหรือมากกว่านั้น เพื่อสร้างเป็นอักขระสำเร็จรูปตัว เดียว และการแยกอักขระคือกระบวนการตรงกันข้าม
โดยทั่วไปแล้ว อักขระที่ประกอบขึ้นล่วงหน้าจะถูกกำหนดให้มีค่าเทียบเท่ากับลำดับของตัวอักษรพื้นฐานและเครื่องหมายกำกับเสียงที่ตามมา ไม่ว่าลำดับการปรากฏจะเป็นอย่างไรก็ตาม
ตัวอย่าง
| ตัวอักษร NFC | เอ | ม | เอ | ล | ฉัน | อี | |
|---|---|---|---|---|---|---|---|
| รหัส NFC | 0041 | 006d | 00e9 | 006c | 0069 | 0065 | |
| รหัสจุด NFD | 0041 | 006d | 0065 | 0301 | 006c | 0069 | 0065 |
| ตัวอักษร NFD | เอ | ม | อี | ◌́ | ล | ฉัน | อี |
การไม่โต้ตอบทางด้านการพิมพ์
บางสคริปต์มักใช้เครื่องหมายรวมหลายตัวที่โดยทั่วไปแล้วไม่โต้ตอบกันทางด้านการพิมพ์ และไม่มีอักขระที่ประกอบไว้ล่วงหน้าสำหรับการรวมกันนั้น คู่ของเครื่องหมายที่ไม่โต้ตอบกันดังกล่าวสามารถจัดเก็บได้ในลำดับใดก็ได้ โดยทั่วไปแล้ว ลำดับทางเลือกเหล่านั้นจะเทียบเท่ากันในเชิงมาตรฐาน กฎที่กำหนดลำดับของเครื่องหมายเหล่านั้นในรูปแบบมาตรฐานยังกำหนดด้วยว่าเครื่องหมายเหล่านั้นถือว่าโต้ตอบกันหรือไม่
หลักเกณฑ์การจัดพิมพ์ตัวอักษร
Unicode กำหนดรหัสจุดสำหรับอักขระบางตัวหรือกลุ่มอักขระที่ถูกดัดแปลงเพื่อความสวยงามเท่านั้น (เช่นตัวเชื่อมอักขระ อักขระ คาตาคานะครึ่งความกว้างหรืออักขระละตินเต็มความกว้าง สำหรับการใช้ในข้อความภาษาญี่ปุ่น) หรือเพื่อเพิ่มความหมายใหม่โดยไม่สูญเสียความหมายเดิม (เช่น ตัวเลขใน ตำแหน่ง ตัวห้อยหรือ ตัว ยกหรือตัวเลขในวงกลม (เช่น "①") ที่สืบทอดมาจากแบบอักษรญี่ปุ่นบางแบบ) ลำดับดังกล่าวถือว่าเข้ากันได้กับลำดับของอักขระดั้งเดิม (แต่ละตัวและไม่ได้ถูกดัดแปลง) เพื่อประโยชน์ของแอปพลิเคชันที่รูปลักษณ์และความหมายที่เพิ่มเข้ามาไม่เกี่ยวข้อง อย่างไรก็ตาม ลำดับทั้งสองไม่ได้ถูกประกาศว่าเทียบเท่ากันอย่างเป็นทางการ เนื่องจากความแตกต่างมีคุณค่าทางความหมายและส่งผลต่อการแสดงผลของข้อความ
ข้อผิดพลาดในการเข้ารหัส
UTF-8และUTF-16 (รวมถึงการเข้ารหัส Unicode อื่นๆ บางแบบ) ไม่อนุญาตให้มีลำดับของหน่วยรหัส ที่เป็นไปได้ทั้งหมด ซอฟต์แวร์ต่างๆ จะแปลงลำดับที่ไม่ถูกต้องให้เป็นอักขระ Unicode โดยใช้กฎที่แตกต่างกัน ซึ่งบางกฎอาจทำให้ข้อมูลสูญหายมาก (เช่น การเปลี่ยนลำดับที่ไม่ถูกต้องทั้งหมดให้เป็นอักขระเดียวกัน) ซึ่งอาจถือได้ว่าเป็นรูปแบบหนึ่งของการทำให้เป็นมาตรฐาน และอาจนำไปสู่ปัญหาเช่นเดียวกับกรณีอื่นๆ
การทำให้เป็นมาตรฐาน
ซอฟต์แวร์ประมวลผลข้อความที่ใช้ฟังก์ชันการค้นหาและเปรียบเทียบสตริง Unicode ต้องคำนึงถึงการมีอยู่ของรหัสจุดเทียบเท่า หากไม่มีคุณสมบัตินี้ ผู้ใช้ที่ค้นหาลำดับรหัสจุดเฉพาะจะไม่สามารถค้นหาอักขระอื่น ๆ ที่มองเห็นได้เหมือนกันแต่มีรหัสจุดที่แตกต่างกันแต่เทียบเท่ากันตามหลักการได้
อัลกอริทึม
Unicode มีอัลกอริธึมการทำให้เป็นมาตรฐานที่สร้างลำดับจุดรหัสที่ไม่ซ้ำกัน (ปกติ) สำหรับลำดับทั้งหมดที่เทียบเท่ากัน เกณฑ์ความเทียบเท่าอาจเป็นแบบแคนอนิก (NF) หรือแบบความเข้ากันได้ (NFK) เนื่องจากสามารถเลือก องค์ประกอบ ที่เป็นตัวแทนของกลุ่มความเทียบเท่า ได้อย่าง อิสระ จึงมีรูปแบบแคนอนิกหลายรูปแบบที่เป็นไปได้สำหรับแต่ละเกณฑ์ความเทียบเท่า Unicode มีรูปแบบปกติสองรูปแบบที่มีความหมายทางความหมายสำหรับเกณฑ์ความเข้ากันได้ทั้งสองแบบ ได้แก่ รูปแบบประกอบ NFC และ NFKC และรูปแบบแยกส่วน NFD และ NFKD ทั้งรูปแบบประกอบและรูปแบบแยกส่วนกำหนดลำดับแคนอนิกให้กับลำดับจุดรหัส ซึ่งจำเป็นสำหรับรูปแบบปกติที่จะต้องไม่ซ้ำกัน
ในการเปรียบเทียบหรือค้นหาสตริง Unicode ซอฟต์แวร์สามารถใช้ได้ทั้งรูปแบบประกอบหรือรูปแบบแยกส่วน การเลือกใช้รูปแบบใดไม่สำคัญ ตราบใดที่ใช้รูปแบบเดียวกันสำหรับสตริงทั้งหมดที่เกี่ยวข้องกับการค้นหา การเปรียบเทียบ ฯลฯ ในทางกลับกัน การเลือกเกณฑ์ความเท่าเทียมกันอาจส่งผลต่อผลการค้นหา ตัวอย่างเช่นตัวอักษรเชื่อม บางตัว เช่น U+FB03 ( ffi ) ตัวเลขโรมันเช่น U+2168 ( Ⅸ ) และแม้แต่ตัวห้อยและตัวยกเช่น U+2075 ( ⁵ ) ก็มีรหัส Unicode ของตัวเอง การทำให้เป็นมาตรฐานแบบ Canonical (NF) ไม่ส่งผลกระทบต่อสิ่งเหล่านี้ แต่การทำให้เป็นมาตรฐานแบบ Compatibility (NFK) จะแยกตัวอักษรเชื่อม ffi ออกเป็นตัวอักษรแต่ละตัว ดังนั้นการค้นหา U+0066 ( f ) เป็นสตริงย่อยจะสำเร็จในการทำให้เป็นมาตรฐานแบบ NFKC ของ U+FB03 แต่จะไม่สำเร็จในการทำให้เป็นมาตรฐานแบบ NFC ของ U+FB03 เช่นเดียวกันนี้ก็เป็นจริงเมื่อค้นหาอักษรละตินI (U+0049) ในเลขโรมันⅨ (U+2168) ที่ประกอบขึ้นแล้ว ในทำนองเดียวกัน เลขยกกำลัง⁵ (U+2075) จะถูกแปลงเป็น5 (U+0035) โดยการจับคู่ความเข้ากันได้
อย่างไรก็ตาม การแปลงตัวยกให้เป็นตัวเทียบเท่าพื้นฐานอาจไม่เหมาะสมสำหรับ ซอฟต์แวร์ ข้อความแบบ Rich Textเนื่องจากข้อมูลตัวยกจะสูญหายไปในกระบวนการ เพื่อให้สามารถแยกแยะความแตกต่างนี้ได้ ฐานข้อมูลอักขระ Unicode จึงมีแท็กการจัดรูปแบบความเข้ากันได้ซึ่งให้รายละเอียดเพิ่มเติมเกี่ยวกับการแปลงความเข้ากันได้[ 1 ]ในกรณีของตัวเชื่อมตัวอักษร แท็กนี้คือ <ligatures> <compat>ในขณะที่สำหรับตัวยกคือ <ligatures> <super>มาตรฐานข้อความแบบ Rich Text เช่นHTMLจะคำนึงถึงแท็กความเข้ากันได้ ตัวอย่างเช่น HTML ใช้มาร์กอัปของตัวเองเพื่อวาง U+0035 ในตำแหน่งตัวยก[ 2 ]
รูปแบบปกติ
ตารางด้านล่างแสดงรูปแบบการกำหนดมาตรฐานยูนิโค้ดทั้งสี่แบบและอัลกอริทึม (การแปลง) ที่ใช้ในการได้มาซึ่งรูปแบบเหล่านั้น
| NFD ( Normalization Form Canonical Decomposition) | ตัวอักษรจะถูกแยกย่อยโดยใช้หลักความเท่าเทียมกันตามหลักเกณฑ์ และตัวอักษรที่รวมกันหลายตัวจะถูกจัดเรียงตามลำดับที่เฉพาะเจาะจง |
| รูปแบบการทำให้เป็นมาตรฐาน NFC องค์ประกอบมาตรฐาน | ตัวอักษรจะถูกแยกส่วนแล้วประกอบขึ้นใหม่โดยใช้หลักความเท่าเทียมกันตามแบบแผน |
| NFKD Normalization Form Compatibility Decomposition | ตัวอักษรจะถูกแยกย่อยตามความเข้ากันได้ และตัวอักษรที่รวมกันหลายตัวจะถูกจัดเรียงตามลำดับที่เฉพาะเจาะจง |
| ความเข้ากันได้ของรูปแบบการทำให้เป็นมาตรฐาน NFKC องค์ประกอบ | ตัวอักษรจะถูกแยกส่วนตามความเข้ากันได้ จากนั้นจึงประกอบขึ้นใหม่ตามความเท่าเทียมกันตามหลักการ |
อัลกอริทึมทั้งหมดเหล่านั้นเป็นการ แปลงแบบไม่เปลี่ยนแปลงผลลัพธ์ (idempotent transformation) ซึ่งหมายความว่าสตริงที่อยู่ในรูปแบบมาตรฐานใดรูปแบบหนึ่งอยู่แล้วจะไม่ถูกเปลี่ยนแปลงหากนำไปประมวลผลอีกครั้งด้วยอัลกอริทึมเดียวกัน
รูปแบบปกติจะไม่ปิด ภายใต้ การต่อสตริง[ 3 ]สำหรับสตริง Unicode ที่มีข้อบกพร่องซึ่งเริ่มต้นด้วยสระ Hangul หรือjamo ที่ต่อท้าย การต่อสตริงอาจทำให้การประกอบเสียหาย ได้
อย่างไรก็ตาม ฟังก์ชันเหล่านี้ไม่ใช่ ฟังก์ชัน หนึ่งต่อหนึ่ง (เพราะมันแปลงสัญลักษณ์และลำดับดั้งเดิมที่แตกต่างกันไปเป็นลำดับมาตรฐานเดียวกัน) และดังนั้นจึงไม่ใช่ ฟังก์ชันหนึ่งต่อหนึ่งและ ทั่วถึง (ไม่สามารถกู้คืนได้) ตัวอย่างเช่น สตริง Unicode ที่แตกต่างกัน "U+212B" (สัญลักษณ์แองสตรอม "Å") และ "U+00C5" (อักษรสวีเดน "Å") ต่างก็ถูกขยายโดย NFD (หรือ NFKD) ไปเป็นลำดับ "U+0041 U+030A" (อักษรละติน "A" และวงแหวนด้านบน "°") ซึ่งจากนั้นจะถูกลดทอนโดย NFC (หรือ NFKC) ไปเป็น "U+00C5" (อักษรสวีเดน "Å")
อักขระเดี่ยว (นอกเหนือจากกลุ่มพยางค์ฮันกุล) ที่ถูกแทนที่ด้วยอักขระอื่นภายใต้กระบวนการปรับมาตรฐาน สามารถระบุได้ในตารางยูนิโค้ดโดยดูจากช่องความเข้ากันได้ที่ไม่ว่างเปล่า แต่ไม่มีแท็กความเข้ากันได้
ลำดับมาตรฐาน
ลำดับมาตรฐานนั้นเกี่ยวข้องกับการเรียงลำดับของอักขระประกอบเป็นหลัก สำหรับตัวอย่างในส่วนนี้ อักขระเหล่านั้นถือว่าเป็นเครื่องหมายกำกับเสียงแต่โดยทั่วไปแล้ว เครื่องหมายกำกับเสียงบางตัวไม่ใช่ตัวอักขระประกอบ และตัวอักขระประกอบบางตัวก็ไม่ใช่เครื่องหมายกำกับเสียง
Unicode กำหนดให้แต่ละอักขระมีคลาสการรวม (combining class ) ซึ่งระบุด้วยค่าตัวเลข อักขระที่ไม่สามารถรวมกันได้จะมีหมายเลขคลาสเป็น 0 และอักขระที่สามารถรวมกันได้จะมีค่าคลาสการรวมเป็นบวก เพื่อให้ได้ลำดับที่ถูกต้องตามมาตรฐาน จะต้องเรียงลำดับสตริงย่อยของอักขระทุกตัวที่มีค่าคลาสการรวมไม่เป็นศูนย์โดยใช้ อัลกอริทึม การเรียงลำดับแบบเสถียรการเรียงลำดับแบบเสถียรมีความจำเป็นเนื่องจากอักขระที่สามารถรวมกันได้ซึ่งมีค่าคลาสเดียวกันนั้นถือว่ามีปฏิสัมพันธ์ทางด้านการพิมพ์ ดังนั้นลำดับที่เป็นไปได้ทั้งสองแบบจึงไม่ถือว่าเทียบเท่ากัน
ตัวอย่างเช่น อักษร U+1EBF (ế) ที่ใช้ในอักษรเวียดนามมีทั้งเครื่องหมายเน้นเสียงแบบแอคิวต์และแบบเซอร์คัมเฟล็กซ์ การแยกส่วนตามหลักการคือลำดับอักษรสามตัว U+0065 (e) U+0302 (เครื่องหมายเน้นเสียงแบบเซอร์คัมเฟล็กซ์) U+0301 (เครื่องหมายเน้นเสียงแบบแอคิวต์) คลาสการรวมของเครื่องหมายเน้นเสียงทั้งสองมีค่าเท่ากับ 230 ดังนั้น U+1EBF จึงไม่เท่ากับ U+0065 U+0301 U+0302
เนื่องจากลำดับการรวมตัวอักษรบางลำดับไม่มีรูปแบบที่ประกอบไว้ล่วงหน้าเทียบเท่า (ลำดับสุดท้ายในตัวอย่างก่อนหน้านี้สามารถลดรูปได้เพียง U+00E9 U+0302 เท่านั้น) แม้แต่รูปแบบปกติของ NFC ก็ยังได้รับผลกระทบจากพฤติกรรมของตัวอักษรที่ใช้ในการรวม
ข้อผิดพลาดจากความแตกต่างของการทำให้เป็นมาตรฐาน
เมื่อแอปพลิเคชันสองตัวใช้ข้อมูล Unicode ร่วมกัน แต่ทำการปรับมาตรฐานข้อมูลแตกต่างกัน อาจส่งผลให้เกิดข้อผิดพลาดและการสูญเสียข้อมูล ในกรณีเฉพาะหนึ่งOS Xปรับมาตรฐานชื่อไฟล์ Unicode ที่ส่งมาจาก ซอฟต์แวร์แชร์ไฟล์และเครื่องพิมพ์ NetatalkและSamba Netatalk และ Samba ไม่รู้จักชื่อไฟล์ที่เปลี่ยนแปลงว่าเทียบเท่ากับชื่อไฟล์เดิม ซึ่งนำไปสู่การสูญเสียข้อมูล[ 4 ] [ 5 ]การแก้ไขปัญหาดังกล่าวไม่ใช่เรื่องง่าย เนื่องจากการปรับมาตรฐานไม่สามารถย้อนกลับได้โดยไม่สูญเสียข้อมูล
ดูเพิ่มเติม
- การจัดวางข้อความที่ซับซ้อน – การจัดวางตำแหน่งตัวอักษรที่ขึ้นอยู่กับตัวอักษรข้างเคียง
- เครื่องหมายกำกับ เสียง – เครื่องหมายที่ใช้ขยายความตัวอักษร
- การโจมตีด้วยโฮโมกราฟในชื่อโดเมน – ตัวอักษรที่คล้ายคลึงกันในชื่อโดเมน
- ISO/IEC 14651 – มาตรฐานอัลกอริทึมการเปรียบเทียบสตริง
- การเชื่อมตัวอักษร (การพิมพ์) – สัญลักษณ์ที่รวมตัวอักษรสองตัวขึ้นไปเข้าด้วยกัน
- อักขระประกอบ – อักขระผสมที่มีรหัสจุดเดียว
- สัญลักษณ์ตัวแทน – ต้นแบบที่ไม่เฉพาะเจาะจงเพื่อใช้แทนหน่วยอักษร
- uconv – ซอฟต์แวร์ยูทิลิตี้สำหรับการแปลงข้อมูล สามารถแปลงข้อมูลไปมาระหว่างรูปแบบมาตรฐาน Unicode ของ NFC และ NFD ได้
- ยูนิโค้ด – มาตรฐานการเข้ารหัสอักขระ
- อักขระที่เข้ากันได้กับ Unicode – อักขระที่เข้ารหัสไว้เพื่อรักษาความสามารถในการแปลงกลับไปกลับมากับมาตรฐานอื่นๆ เท่านั้น
หมายเหตุ
- ^ "UAX #44: ฐานข้อมูลอักขระยูนิโค้ด" . Unicode.org . สืบค้นเมื่อ20 พฤศจิกายน 2014 .
- ^ "Unicode ใน XML และภาษามาร์กอัปอื่นๆ" . Unicode.org . สืบค้นเมื่อ20 พฤศจิกายน 2014 .
- ^เกี่ยวกับสิ่งที่ควรทำเกี่ยวกับการเชื่อมต่อ
- ^ "netatalk / Bugs / #349 volcharset:UTF8 doesn't work from Mac" . SourceForge . สืบค้นเมื่อ20 พฤศจิกายน 2014 .
- ^ "rsync, samba, UTF8, อักขระนานาชาติ โอ้ พระเจ้า!" . 2009. เก็บถาวรจากต้นฉบับเมื่อวันที่ 9 มกราคม 2010.
ลิงก์ภายนอก
- คำถามที่พบบ่อยของ Unicode.org - การทำให้เป็นมาตรฐาน
- Charlint - เครื่องมือปรับมาตรฐานตัวอักษรที่เขียนด้วยภาษา Perl
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ความเท่าเทียมกันของยูนิโค้ด
ความเท่าเทียมกันของยูนิโค้ด คือข้อกำหนดใน มาตรฐานการเข้ารหัส อักขระ ยูนิโค้ด ที่ระบุ ว่า ลำดับของ รหัส บางลำดับ แทนอักขระเดียวกันโดยพื้นฐาน...
การทำซ้ำตัวอักษร
เพื่อความเข้ากันได้หรือเหตุผลอื่นๆ บางครั้ง Unicode จะกำหนดรหัสสองจุดที่แตกต่างกันให้กับอักขระที่เหมือนกันโดยพื้นฐาน ตัวอย่างเช่น ตัวอักษร "A ที่มี วงแหวน อยู่ด้านบน" จะถูกเข้ารหัสเป็น U+00C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE (ตัวอักษรใน ภาษา สวีเดน...
การรวมและการประกอบตัวอักษรล่วงหน้า
เพื่อให้สอดคล้องกับมาตรฐานเก่าบางประการ ยูนิโค้ดจึงกำหนดรหัสจุดเดียวสำหรับอักขระหลายตัวที่อาจมองได้ว่าเป็นรูปแบบที่ดัดแปลงมาจากอักขระอื่น (เช่น U+00F1 สำหรับ "ñ" หรือ U+00C5 สำหรับ "Å") หรือเป็นการรวมกันของอักขระสองตัวขึ้นไป (เช่น U+FB00 สำหรับอักษรเชื่อม ff...
การไม่โต้ตอบทางด้านการพิมพ์
บางสคริปต์มักใช้เครื่องหมายรวมหลายตัวที่โดยทั่วไปแล้วไม่โต้ตอบกันทางด้านการพิมพ์ และไม่มีอักขระที่ประกอบไว้ล่วงหน้าสำหรับการรวมกันนั้น คู่ของเครื่องหมายที่ไม่โต้ตอบกันดังกล่าวสามารถจัดเก็บได้ในลำดับใดก็ได้ โดยทั่วไปแล้ว...