เหตุใดอักขระบางตัวจึงวาดอย่างน่ากลัวและผิดอย่างมากใน Windows


16

ตัวละครแปลก:

ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้

คำถาม:ทำไมตัวละครเหล่านี้ถึงดูแปลก ๆ เมื่อคุณดูใน Windows *

นี่เป็นตัวอย่างข้อมูลจาก Outlook สำหรับไอ้ผู้โชคดีที่ไม่ถูกบังคับให้ใช้ Windows:

Stuff

ที่เกี่ยวข้อง: การเข้ารหัสอักขระใช้อะไร

* Windows ในระบบปฏิบัติการ การประยุกต์ใช้งานการวาดภาพข้อความโดยใช้ GTK + และชอบไม่แสดงเหล่านี้เหมือนสิ่งที่ออกมาจากที่ไม่ถูกต้องหายไป LSD เดินทาง


คุณกำลังบอกว่าบนเครื่อง Windows ของคุณตัวละครที่คุณพิมพ์ในคำถามนั้นดูเหมือนตัวละครในภาพหรือไม่? เพราะตัวอักษรที่พิมพ์ออกมาดูดีในเครื่อง Windows ของฉัน
dsolimano

1
คำถามของคุณมีการอ้างสิทธิ์ที่ไม่มีเงื่อนไข - Windows ดึงข้อมูลเหล่านั้นผิด มันจะช่วยถ้าคุณระบุว่าคุณคิดว่าควรวาดอย่างไรและสิ่งใดผิดกับวิธีการดึง Windows
David Schwartz

2
ฉันอยากรู้ว่าระบบปฏิบัติการอื่นจัดการกับสิ่งนี้ได้อย่างไรฉันเห็นว่า Windows ใช้งานได้อย่างไรและสำหรับฉันที่ดูเหมือนว่า "ถูกต้อง"
Mokubai


1
สิ่งที่เกี่ยวข้อง: en.wikipedia.org/wiki/Combining_character
iglvzx

คำตอบ:


10

เนื่องจากฉันดูเหมือนจะคิดว่า Windows กำลัง "ทำถูกต้อง" ฉันรู้สึกว่าฉันควรโพสต์คำตอบเพื่อพิสูจน์ตำแหน่งของฉัน

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

โดยพื้นฐานแล้วมันมาจากแนวคิดที่ว่าภาษาที่เขียนนั้นเป็นสิ่งที่ลื่นไหลและตัวละครจำนวนมากในบางภาษามีการออกเสียงที่แตกต่างกันหลายอย่างซึ่งถูกนำไปใช้เพื่อแก้ไขการออกเสียงของตัวละคร เราจะจัดการกำกับการออกเสียงเหล่านี้ได้อย่างไรเราให้ตัวอักษรใหม่กำกับตัวอักษรแต่ละตัว (ซึ่งจะส่งผลให้เกิดตัวละครใหม่และตัวละครที่เหมือนกันเกือบหนึ่งตัว) หรือเราสร้างชุดตัวละครเฉพาะสำหรับนักออกเสียงกำกับและลด ตัวอักษรโดยรวม?

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

Microsoft ไม่ว่าจะถูกหรือไม่ถูกต้องตัดสินใจให้ผู้ใช้ตัดสินใจว่าบุคคลใดต้องการใช้เครื่องหมายพิเศษจำนวนเท่าใด เส้นทางนี้ใช้โปรแกรมเมอร์ค่อนข้างดีและหาเหตุผลเข้าข้างตนเองที่ยากลำบากในการติดตาม ผมสนับสนุนอย่างเต็มที่พวกเขาทั้งในการอนุญาตให้นี้และความจริงที่ว่าพวกเขาทำมันได้ดี

หากตัวละครเหล่านั้นหายไปฉันก็อยากจะรู้ว่าทำไมพวกเขาถึงหายไป มันเป็น "เราวางสิ่งนี้ลงบนพื้นหลังxการตัดสินใจกำกับ" หรือว่าเป็นเพราะโปรแกรมเมอร์นั้นขี้เกียจเกินไปที่จะทำอย่างถูกต้องและอาจทำให้ฉันเห็นบัฟเฟอร์ล้นด้วยรหัสที่ซ่อนอยู่ในเครื่องหมายกำกับที่ถูกส่งออกไปโดย ระบบ?

ปัญหาง่ายๆที่นี่เป็นที่โดยจริงการแสดงผลตัวอักษรเหล่านั้นฉันจะเห็นว่าระบบที่จะทำสิ่งที่มันจะบอกให้ทำมากกว่าการทำสิ่งที่คิดว่าถูกหรือแย่กว่านั้นคือการทำบางสิ่งบางอย่างที่อาจเป็นอันตราย


11
หรือ: ทำไม Windows ถึงดึงตัวละครที่น่ากลัวและผิดไปได้ดี?
เสียงเรียกเข้า

ครอบคลุมข้อความของคนอื่นตรงตามเกณฑ์ของ "อาจเป็นอันตราย" ในหนังสือของฉัน (บางทีข้อความที่ถูกปกปิดเป็นสิ่งสำคัญ) อนึ่งโซลูชันที่ฉันต้องการจะเป็นรูปแบบของการเล็มมากกว่าการ จำกัด จำนวนของการออกเสียงกำกับ (หากมีภาษาที่ใช้อักขระที่ทับซ้อนกับตัวละครในบรรทัดที่อยู่ติดกันฉันไม่สนใจที่จะรู้!)
Harry Johnston

เพิ่มเติม: เนื่องจาก MS ไม่น่าจะเปลี่ยนพฤติกรรมนี้ได้ทุกเวลาเร็ว ๆ นี้ Facebook และเว็บไซต์อื่น ๆ ที่ยอมรับข้อมูลผู้ใช้จึงมีแนวโน้มที่จะพยายามฆ่าตัวละครที่ตั้งค่าตัวเองเพื่อป้องกันไม่ให้ใช้งาน น่าเสียดายที่กระบวนการฆ่าเชื้ออาจมีผลข้างเคียงที่ไม่พึงประสงค์ หาก Windows ตัดการแสดงผลสิ่งนี้ไม่จำเป็น
Harry Johnston

4

ทำไมตัวละครเหล่านี้ถึงดูแปลก ๆ เมื่อคุณดูใน Windows *

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


สันนิษฐานว่านั่นหมายความว่า Windows กำลัง "ทำถูกต้อง" ตามสิ่งที่ถูกถามจริง ๆ แทนที่จะ จำกัด ขอบเขตของจำนวนอักขระที่สามารถใช้ร่วมกันได้
Mokubai

ดูเพิ่มเติมที่superuser.com/questions/389333/ …ซึ่งดูเหมือนว่าบ่งบอกว่าเทคนิคดังกล่าวได้รับความนิยมใน Facebook
Jukka K. Korpela

@Mokubai: มันคือข้อมูลที่ไม่น่าเชื่อถือ - ข้อมูลมาจากอินเทอร์เน็ต Windows ไม่ควรทำในสิ่งที่ข้อมูลที่ไม่น่าเชื่อถือถามหากมันอาจไม่ได้รับประโยชน์สูงสุดของผู้ใช้
Harry Johnston

1
@HarryJohnston ฉันจะกังวลมากขึ้นถ้ามันไม่ได้แสดงกำกับทั้งหมดโปรดดูคำตอบของฉัน
Mokubai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.