Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> สมาร์ทโฟน

เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple

เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple

Apple มีบั๊กกี้ไม่กี่เดือน ตอนนี้ เรามีจุดบกพร่องใหม่ที่ร้ายแรงในฟังก์ชันการแสดงข้อความใน iPhone ข้อบกพร่องนี้เกิดจากอักขระ Telugu ตัวเดียวซึ่งอาจทำให้ iPhone เข้าสู่ลูปสำหรับบูตที่ไม่แตกหักได้เพียงแค่ได้รับการแจ้งเตือนที่มีอักขระดังกล่าว มาเจาะลึกกันว่าเหตุใดอักขระตัวเดียวจึงทำให้เกิดปัญหาใหญ่กับ iOS ได้

หมายเหตุ: การแก้ไขข้อบกพร่องของ Telugu มีอยู่ใน iOS เวอร์ชันล่าสุด (11.2.6) หากอักขระเตลูกูล็อกแอปหรืออุปกรณ์ของคุณ ให้กู้คืน iPhone ของคุณผ่าน iTunes และอัปเดตเป็น iOS เวอร์ชันล่าสุด หาก iPhone ของคุณติดอยู่ในลูปสำหรับบูต คุณอาจต้องใส่ไว้ในสถานะการอัปเดตเฟิร์มแวร์อุปกรณ์ (DFU) เพื่อให้ iTunes รู้จัก เมื่อเสร็จแล้ว กู้คืนอุปกรณ์ของคุณจากข้อมูลสำรองล่าสุดที่คุณสร้างขึ้นโดยหวังว่าจะสร้างขึ้น

เตลูกูคืออะไร

เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple

เตลูกูเป็นภาษาพูดและเขียนในส่วนของอินเดีย โดยเฉพาะในรัฐอานธรประเทศ เตลังกานา และในเมืองยานัม เช่นเดียวกับภาษาที่ใช้สคริปต์หลายๆ ภาษา เช่น ภาษาอาหรับและอักษรบราห์มิกอื่นๆ ภาษาเตลูกูใช้คุณลักษณะพิเศษบางอย่างของชุดอักขระ Unicode เพื่อแสดงอักขระบนหน้าจอคอมพิวเตอร์

แม้ว่าตัวอักษรละตินส่วนใหญ่จะใช้จุดรหัส Unicode 8 บิตเพียงจุดเดียวสำหรับความเข้ากันได้ของ ASCII (เช่น ตัวอักษร A อยู่ที่จุดรหัส Unicode U+0041 ซึ่งแสดงเป็นไบนารีโดย 01000001 ) ภาษาที่เขียนด้วยสคริปต์หรือตัวอักษรที่ไม่ใช่ภาษาละตินมักจะรวมจุดโค้ด Unicode มากกว่าหนึ่งจุดเพื่อแสดงอักขระ

นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับภาษาต่างๆ เช่น เตลูกู ซึ่งรวมตัวอักษรของภาษาต่างๆ ไว้ในคลัสเตอร์ ความเชื่อมโยงระหว่างอักษรเตลูกูแต่ละฉบับมีความสำคัญทางภาษาแตกต่างจากอักษรควบโวหารของภาษาอังกฤษ เพื่อรองรับสิ่งนี้ Unicode ได้รวมระบบที่ซับซ้อนของการแนบอักขระ ซึ่งแต่ละตัวแสดงด้วยจุดรหัสของตัวเอง ต่อกัน

เมื่อพิจารณาจากจำนวนจุดรหัส Unicode จำนวนมากแล้ว สิ่งนี้สามารถสร้างความหลากหลายที่แทบจะไม่มีที่สิ้นสุด จุดเหล่านี้รวมกันเพื่อสร้างตัวอักษรที่อ่านง่าย วิธีนี้ Unicode ไม่ต้องการจุดโค้ด Unicode สำหรับทุกคำภาษาเตลูกูที่เป็นไปได้อย่างแท้จริง แต่ Unicode จะรวมพยัญชนะ สระ และเครื่องหมายกำกับเสียงของเตลูกู ("virama") เข้าด้วยกันเพื่อสร้างคำที่แสดงเป็นอักขระตัวเดียว เช่นเดียวกับภาษาอื่นๆ ที่มีกฎอักขรวิธีสำหรับอักษรควบ เช่น อาหรับ

เหตุขัดข้องเกิดจากอะไร

เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple

ดูเหมือนว่าปัญหาจะเกี่ยวข้องกับ Zero Width Non-Joiner (ZWNJ) ที่จุดโค้ด U+200C . ZWNJ ขอให้อักขระสองตัวที่อยู่ติดกันแสดงผลโดยไม่มีการควบแน่นทั่วไป ในภาษาอังกฤษ ZWNJ จะป้องกันไม่ให้พิมพ์อักขระ ff ด้วยการเชื่อมต่อมาตรฐาน แทนที่จะแยกแต่ละ f แต่เมื่อรวมกับจุดรหัสภาษาเตลูกูสี่จุด (ซึ่งทั้งหมดควรรวมกันเป็นคลัสเตอร์เดียว) ด้วยเหตุผลบางประการ iOS จึงไม่สามารถแสดงผลได้อย่างถูกต้อง

บางคนคาดการณ์ว่าฟอนต์ San Francisco ของ Apple ไม่สามารถแสดงอักขระนั้นได้ ในขณะที่บางคนกล่าวว่ากระบวนการเรนเดอร์เฉพาะที่ Apple ใช้นั้นเป็นโทษ ไม่ว่าสาเหตุที่แท้จริงจะเป็นอย่างไร ความพยายามในการแสดงตัวละครจะทำให้เกิดความผิดพลาดอย่างมากกับสิ่งที่กำลังแสดงผล ตั้งแต่ข้อความและ WhatsApp ไปจนถึง Springboard จุดโค้ด Unicode ที่ประกอบเป็นอักขระ ("gya" หมายถึง "ความรู้") อยู่ด้านล่าง:

  • U+0C1C จา ( เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple )
  • U+0C4D วิรามะ หรือ เครื่องหมายกำกับเสียง ( เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple )
  • U+0C1E น้า ( เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple )
  • U+200C ตัวเชื่อมแบบไม่มีความกว้างเป็นศูนย์
  • U+0C3E อ่า ( เหตุใดตัวละครเตลูกูจึงปิดกั้นอุปกรณ์ Apple )

แต่เราไม่สามารถตำหนิ Zero Width Non-Joiner (ZWNJ) เพียงอย่างเดียวได้ นอกจากนี้ยังใช้ในอีโมจิครอบครัวที่ไม่มีพิษภัย (?‍?‍?‍?) โดยไม่มีปัญหาใดๆ ดูเหมือนว่าจะเป็นการรวมกันเฉพาะของจุดโค้ดบางจุดและ ZWNJ การเพิ่มการดูถูกการบาดเจ็บ ดูเหมือนว่า ZWNJ จะไม่มีผลเฉพาะกับการแสดงผลบนคลัสเตอร์ Telugu นี้ หรือไม่ควรมีตั้งแต่แรก

ปัญหาอักษรพราหมณ์อื่นๆ

อย่างไรก็ตาม ภาษาเตลูกูไม่ใช่ภาษาเดียวที่มีปัญหานี้ เบงกาลีและเทวนาครีซึ่งใช้ Unicode ในลักษณะเดียวกันสำหรับสคริปต์พราหมณ์ของตน มีปัญหาเดียวกัน Manish Goregaokar เขียนบล็อกโพสต์ที่มีรายละเอียดและน่าสนใจซึ่งช่วยแยกแยะกรณีการแครชที่ชัดเจนยิ่งขึ้น:

ลำดับใดๆ <consonant1, virama, consonant2, ZWNJ, vowel> ในเทวนาครี เบงกาลี และเตลูกู โดยที่:

1. consonant2 เป็นคำต่อท้ายร่วม (pstf /vatu )
2. consonant1 ไม่ใช่จดหมายสร้างตัวแทน
3. vowel ไม่มีสององค์ประกอบร่ายมนตร์

บทสรุป:เหตุใด Apple จึงจับสิ่งนี้ไม่ได้

เพื่อให้เข้าใจว่าจุดบกพร่องนี้ผ่านพ้นไปได้อย่างไร คุณต้องใส่ตัวเองในรองเท้าของ Apple แน่นอนว่าชุดอักขระนี้ไม่ใช่คำที่คลุมเครือในภาษาเตลูกู แต่ iPhone รองรับหลายภาษา Unicode มีชุดค่าผสมที่เป็นไปได้หลายพันล้านชุด ด้วยการทดสอบจุดบกพร่อง Unicode ที่หลากหลายและมีความหมายก่อนเผยแพร่ จะทำให้การอัปเดตซอฟต์แวร์ปกติเป็นไปไม่ได้โดยพื้นฐานแล้ว

อย่างไรก็ตาม ข้อผิดพลาดไม่ควรทำให้เกิดความเสียหายมากขนาดนี้ โทรศัพท์ไม่ควรถูกปิดกั้นโดยอิงจากเนื้อหาของข้อความ แม้ว่าการเข้าใจถึงปัญหาย้อนหลังจะอยู่ที่ 20/20 อย่างแน่นอน แต่ดูเหมือนว่าการแสดงตัวละครเป็นกล่องเครื่องหมายคำถาม (�) จะดีกว่าการล่มของ Springboard