นอกมาตรฐาน Unicode ตัวละครที่เป็นหน่วยของแต่ละข้อความประกอบด้วยหนึ่งหรือมากกว่าอักษร สิ่งที่มาตรฐาน Unicode กำหนดเป็น "ตัวอักษร" คือการผสมผสานระหว่างกราฟิกและตัวอักษร Unicode จัดเตรียมกฎสำหรับการตีความ juxtaposed graphemes เป็นอักขระแต่ละตัว
Unicode จุดรหัสเป็นหมายเลขที่ไม่ซ้ำกันได้รับมอบหมายให้แต่ละอักขระ Unicode (ซึ่งเป็นทั้งตัวอักษรหรือตัวอักษรก)
น่าเสียดายที่กฎ Unicode อนุญาตให้ตีความ juxtaposed บางรูปแบบเป็นรูปแบบอื่น ๆ ที่มีรหัสคะแนนของตัวเองอยู่แล้ว ( แบบฟอร์ม precomposed ) ซึ่งหมายความว่ามี Unicode มากกว่าหนึ่งวิธีในการแสดงอักขระ การปรับสภาพ Unicodeแก้ปัญหานี้
สัญลักษณ์คือการแสดงภาพของตัวละคร ฟอนต์จัดเตรียมชุดของ glyphs สำหรับชุดอักขระบางตัว (ไม่ใช่อักขระ Unicode) สำหรับตัวละครทุกตัวมีร่ายมนตร์ที่เป็นไปได้ไม่ จำกัด จำนวน
คำตอบของ Mark Amery
ครั้งแรกที่ฉันกล่าวว่ามีจำนวนที่เป็นไปได้ของร่ายมนตร์ที่เป็นไปได้สำหรับตัวละครแต่ละตัวดังนั้นไม่ตัวละครไม่ได้เป็น "มักจะแสดงด้วยสัญลักษณ์เดียว" Unicode ไม่ได้เกี่ยวข้องกับร่ายมนตร์มากนักและสิ่งที่มันกำหนดไว้ในแผนภูมิรหัสของมันนั้นไม่ใช่ร่ายมนตร์อย่างแน่นอน ปัญหาคือพวกมันไม่ใช่ตัวละครทุกตัว แล้วพวกมันคืออะไร
เอนทิตีที่มากกว่ากราฟิกหรือตัวละครคืออะไร? สิ่งใดที่เรียกองค์ประกอบกราฟิกเหล่านั้นในข้อความที่ไม่ใช่ตัวอักษรหรือเครื่องหมายวรรคตอน หนึ่งคำที่ผุดขึ้นมาในใจอย่างรวดเร็วคือ "แกรม" มันเป็นคำที่คิดในใจว่า "หน่วยกราฟิกในข้อความ" ผมจะนำเสนอคำนิยามนี้: อักษรเป็นองค์ประกอบที่แตกต่างกันมีขนาดเล็กที่สุดในข้อความที่เขียน
ใคร ๆ ก็สามารถไปทางอื่นและบอกว่าภาพเขียนประกอบไปด้วยตัวอักษร แต่แล้วพวกเขาก็จะถูกเรียกว่า "ภาพวาดจีน" และบิตและชิ้นส่วนเหล่านั้นภาพเขียนอักษรจีนที่ประกอบด้วยจะต้องเรียกว่า "ตัวอักษร" แทน อย่างไรก็ตามนั่นคือทั้งหมดที่ย้อนหลัง Graphemes เป็นบิตและชิ้นส่วนที่แตกต่างกันเล็กน้อย ตัวละครมีการพัฒนามากขึ้น วลี "glyphs เป็น composable" จะมีการระบุไว้ที่ดีขึ้นในบริบทของ Unicode ว่า "อักขระเป็น composable"
Unicode กำหนดอักขระ แต่ยังกำหนดกราฟที่จะประกอบกับกราฟิกหรืออักขระอื่น สิ่งประหลาดที่คุณแต่งขึ้นเป็นตัวอย่างที่ดีของเรื่องนี้ หากพวกเขาจับบางทีพวกเขาจะได้รับคะแนนรหัสของตัวเองในรุ่นที่ใหม่กว่าของ Unicode;)
มีองค์ประกอบแบบเรียกซ้ำทั้งหมดนี้ ในระดับที่สูงขึ้นกลายเป็นตัวอักษรกลายเป็นรูปแบบของกราฟ แต่เป็นรูปแบบของกราฟลงมา
ตอบกลับ TS
บทที่ 1ของสถานะมาตรฐาน: "การเข้ารหัสอักขระ Unicode จะปฏิบัติต่อตัวอักษรตัวอักษรตัวละครในอุดมคติและสัญลักษณ์อย่างเท่าเทียมกันซึ่งหมายความว่าพวกเขาสามารถนำมาใช้ในการผสมและสิ่งอำนวยความสะดวกที่เท่าเทียมกัน" เมื่อพิจารณาจากแถลงการณ์นี้เราควรเตรียมพร้อมสำหรับการทำข้อตกลงในมาตรฐาน บางครั้งคำศัพท์ที่เหมาะสมจะชัดเจนในการหวนกลับเป็นมาตรฐานการพัฒนา
มันมักจะเกิดขึ้นในคำจำกัดความที่เป็นทางการของภาษาที่มีการกำหนดสองสิ่งพื้นฐานในแง่ของกันและกัน ตัวอย่างเช่นใน
XMLองค์ประกอบจะถูกกำหนดเป็นแท็กเริ่มต้นอาจตามด้วยเนื้อหาตามด้วยแท็กสิ้นสุด เนื้อหาถูกกำหนดให้เป็นองค์ประกอบข้อมูลตัวละครหรือสิ่งอื่น ๆ ที่เป็นไปได้ รูปแบบของคำจำกัดความการอ้างอิงตนเองยังมีความหมายในมาตรฐาน Unicode:
Grapheme เป็นจุดโค้ดหรือตัวอักษร
อักขระประกอบด้วยลำดับกราฟิกหนึ่งชุดขึ้นไป
เมื่อเผชิญหน้ากับคำจำกัดความทั้งสองนี้เป็นครั้งแรกผู้อ่านอาจคัดค้านคำจำกัดความแรกโดยอ้างว่าจุดรหัสเป็นตัวอักษร แต่นั่นไม่จริงเสมอไป ลำดับของสองจุดรหัสบางครั้ง encodes จุดเดียวภายใต้รหัส
การฟื้นฟูและที่จุดรหัสเข้ารหัสแสดงให้เห็นถึงตัวละครดังแสดงใน
รูปที่ 2.7 ลำดับของจุดโค้ดที่เข้ารหัสจุดโค้ดอื่น ๆ นี่เป็นเรื่องยุ่งยากเล็กน้อยและเรายังไม่ถึงเลเยอร์ที่ซึ่งการเข้ารหัสอักขระเช่นUTF-8ถูกใช้เพื่อเข้ารหัสจุดรหัสเป็นลำดับไบต์
ในบริบทบางอย่างเช่นบทความทางวิชาการเกี่ยวกับการ
กำกับเสียงและแต่ละส่วนของตัวละครอาจปรากฏในข้อความด้วยตัวเอง ในบริบทนั้นส่วนอักขระส่วนบุคคลอาจถูกพิจารณาว่าเป็นตัวละครดังนั้นจึงเหมาะสมที่มาตรฐาน Unicode ยังคงมีความยืดหยุ่นเช่นกัน
ดังที่มาร์คเอเวอรี่ชี้ให้เห็นว่าตัวละครสามารถประกอบขึ้นเป็นสิ่งที่ซับซ้อนกว่า นั่นคือตัวละครแต่ละตัวสามารถทำหน้าที่เป็นกราฟถ้าต้องการ ผลลัพธ์สุดท้ายของการเรียบเรียงทั้งหมดเป็นสิ่งที่ "ผู้ใช้คิดว่าเป็นตัวละคร" ดูเหมือนจะไม่มีการต่อต้านจริงใด ๆ ทั้งในมาตรฐานหรือในการสนทนานี้กับความคิดที่ว่าในระดับสูงสุดมีสิ่งเหล่านี้ในข้อความที่ผู้ใช้คิดว่าเป็นอักขระแต่ละตัว เพื่อหลีกเลี่ยงการใช้คำมากเกินไปเราสามารถใช้ "grapheme" ในทุกกรณีที่เราต้องการอ้างถึงชิ้นส่วนที่ใช้ในการเขียนอักขระ
ในบางครั้งมาตรฐาน Unicode อยู่ทั่วทุกแห่งพร้อมกับคำศัพท์ ตัวอย่างเช่นบทที่ 3
กำหนด UTF-8 เป็น "รูปแบบการเข้ารหัส" ในขณะที่คำศัพท์กำหนด "รูปแบบการเข้ารหัส" เป็นอย่างอื่นและ UTF-8 เป็น "รูปแบบการเข้ารหัสตัวอักษร" อีกตัวอย่างหนึ่งคือ "Grapheme_Base" และ "Grapheme_Extend" ซึ่งได้รับการยอมรับว่าเป็นข้อผิดพลาด แต่ยังคงมีอยู่เพราะการล้างพวกเขาเป็นงานเล็กน้อย ยังคงมีงานที่ต้องทำเพื่อกระชับคำศัพท์ที่ใช้โดยมาตรฐาน
ข้อเสนอสำหรับการเพิ่มขึ้นของการรวมตัวอักษรช่างไม้ได้มันผิดเมื่อมันระบุว่า "Graphemes เป็นลำดับหนึ่งหรือตัวอักษรที่เข้ารหัสอื่น ๆ ที่ตรงกับสิ่งที่ผู้ใช้คิดว่าเป็นตัวละคร." คุณควรอ่านแทน "ลำดับของกราฟิคหนึ่งหรือมากกว่านั้นประกอบไปด้วยสิ่งที่ผู้ใช้คิดว่าเป็นอักขระ" จากนั้นก็สามารถใช้คำว่า "ลำดับแกรม" อย่างชัดเจนจากคำว่า "ลำดับอักขระ" เงื่อนไขทั้งสองมีประโยชน์ "ลำดับกราฟ" หมายถึงกระบวนการสร้างตัวละครจากชิ้นเล็ก ๆ อย่างประณีต "ลำดับอักขระ" หมายถึงสิ่งที่เราทุกคนมักจะไม่เหมาะสมเพื่อหมายถึง: "ลำดับของสิ่งที่ผู้ใช้คิดว่าเป็นอักขระ"
บางครั้งผู้เขียนโปรแกรมต้องการทำงานในระดับของ grapheme sequences ดังนั้นกลไกในการตรวจสอบและจัดการกับลำดับเหล่านั้นควรมีอยู่ แต่โดยทั่วไปเมื่อประมวลผลข้อความมันก็เพียงพอที่จะทำงานกับ "ลำดับอักขระ" (สิ่งที่ผู้ใช้คิด เป็นตัวอักษร) และให้ระบบจัดการรายละเอียดระดับล่าง
ในทุกกรณีที่กล่าวถึงในบทสนทนานี้การใช้ "grapheme" เพื่ออ้างถึงส่วนประกอบที่แยกไม่ได้และ "character" เพื่ออ้างถึงเอนทิตีที่สงบ การใช้งานนี้ยังสะท้อนความหมายที่ยาวนานขึ้นของคำศัพท์ทั้งสอง