Mengapa karakter tertentu menggambar mengerikan, sangat salah di Windows?

16

Karakter ganjil:

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

Pertanyaan: Mengapa karakter ini sangat aneh ketika Anda melihatnya di Windows *?

Ini cuplikan dari Outlook untuk Anda para bajingan beruntung yang tidak dipaksa menggunakan Windows:

Barang

Terkait: Apa yang digunakan pengkodean karakter?

* Windows seperti pada OS. Aplikasi menggambar teks menggunakan GTK + dan suka tidak menunjukkan ini seperti sesuatu dari perjalanan LSD yang salah .

Marcus Hansson
sumber
Apakah Anda mengatakan itu di mesin Windows Anda, karakter yang Anda ketikkan dalam pertanyaan terlihat seperti karakter pada gambar? Karena karakter yang diketik terlihat bagus di mesin Windows saya.
dsolimano
1
Pertanyaan Anda mengandung klaim yang tidak berdasar - bahwa Windows menganggapnya "salah". Akan membantu jika Anda menyatakan bagaimana menurut Anda mereka harus menggambar dan apa yang salah dengan cara Windows menggambar mereka.
David Schwartz
2
Saya ingin tahu melihat bagaimana OS lain menangani ini, saya hanya melihat bagaimana Windows melakukannya dan bagi saya itu tampak "benar".
Mokubai

Jawaban:

10

Sepertinya saya telah mengambil sedikit pukulan karena berpikir bahwa Windows "melakukannya dengan benar", saya merasa saya harus mengirim jawaban untuk membenarkan posisi saya.

Faktanya adalah bahwa teks yang Anda miliki memberitahu sistem operasi untuk membuat jumlah kombinasi karakter yang gila. Masalah bahwa satu sistem operasi benar-benar membuat mereka sementara yang lain tidak disebabkan oleh sejumlah masalah. Salah satu masalah ini adalah seberapa teliti programmer ketika mereka menulis kode untuk membuat mereka, yang lain akan disebabkan karena programmer terlalu malas untuk mengimplementasikannya dengan benar, jika sama sekali.

Pada dasarnya bermuara pada gagasan bahwa bahasa tertulis adalah hal-hal yang berubah- ubah , dan bahwa banyak karakter dalam bahasa tertentu memiliki beberapa diakritik yang berbeda yang diterapkan untuk memodifikasi pengucapan karakter. Bagaimana kita menangani semua diakritik ini, apakah kita memberikan setiap huruf dengan diakritik karakter baru (yang akan menghasilkan satu heck dari banyak karakter baru dan hampir identik) atau apakah kita membuat satu set karakter khusus untuk diakritik dan mengurangi kita alfabet keseluruhan?

Unicode memberi kita ruang untuk melakukan keduanya, tetapi dengan melakukan itu programmer yang harus membuat diakritik ini harus berurusan dengan fakta bahwa ada beberapa karakter yang benar-benar memiliki beberapa diakritik, satu di atas dan satu di bawah, dan kemudian programmer memiliki untuk menanyakan pertanyaan kapan mereka berhenti. Mereka dapat membatasi itu menjadi dua, dan memuaskan kebanyakan orang tetapi mengabaikan mereka yang ingin atau membutuhkan tiga diakritik untuk menulis secara resmi dalam bahasa mereka sendiri.

Microsoft, apakah benar atau salah, memutuskan untuk membiarkan pengguna memutuskan berapa banyak tanda tambahan yang ingin digunakan seseorang. Jalur ini membutuhkan programmer yang cukup baik dan beberapa rasionalisasi yang sulit untuk ditindaklanjuti. Saya sepenuhnya mendukung mereka baik dalam memungkinkan ini dan fakta bahwa mereka melakukannya dengan baik .

Jika karakter itu hilang, saya ingin tahu mengapa mereka hilang. Apakah itu keputusan "kita menjatuhkan ini di lantai setelah xdiakritik", atau apakah karena programmer terlalu malas untuk melakukannya dengan benar dan berpotensi mengekspos saya ke beberapa buffer overflow dengan kode tersembunyi di diakritik yang akan dikeluarkan untuk dieksekusi oleh sistem?

Masalah sederhana di sini adalah bahwa dengan benar-benar menampilkan karakter-karakter itu saya dapat melihat bahwa sistem melakukan persis apa yang diperintahkan untuk dilakukan, daripada melakukan apa yang dianggapnya benar atau, lebih buruk lagi, melakukan sesuatu yang berpotensi berbahaya .

Mokubai
sumber
11
Atau: Mengapa Windows menggambar karakter yang sangat buruk dan sangat salah?
mtone
Menutupi teks orang lain memenuhi kriteria "berpotensi berbahaya" dalam buku saya. (Mungkin pesan yang ditutup-tutupi itu penting.) Kebetulan, solusi pilihan saya adalah beberapa bentuk kliping daripada batas pada jumlah diakritik. (Jika benar-benar ada bahasa yang menggunakan karakter yang tumpang tindih dengan karakter pada baris yang berdekatan, saya tidak peduli untuk mengetahuinya!)
Harry Johnston
Lebih lanjut: karena MS tidak mungkin mengubah perilaku ini dalam waktu dekat, Facebook dan situs lain yang menerima data pengguna cenderung mencoba membersihkan karakter yang diatur sendiri untuk mencegah orang iseng menyalahgunakan "fitur" ini. Sayangnya, proses sanitasi mungkin memiliki efek samping yang tidak diinginkan. Jika Windows memotong output, ini tidak diperlukan.
Harry Johnston
4

Mengapa karakter ini sangat aneh ketika Anda melihatnya di Windows *?

Karena Windows mencoba untuk merender Unicode dalam jumlah besar yang mengkombinasikan karakter ketika teks Anda memuatnya, meskipun tidak ada skrip aktual yang akan menggabungkan banyak tanda menjadi satu.

RedGrittyBrick
sumber
Agaknya itu berarti Windows "melakukannya dengan benar" sesuai dengan apa yang sebenarnya ditanyakan tentang itu daripada memaksakan batasan pada berapa banyak kombinasi karakter yang dapat digunakan.
Mokubai
Lihat juga superuser.com/questions/389333/... yang tampaknya mengindikasikan bahwa trik semacam itu telah mendapatkan popularitas di Facebook.
Jukka K. Korpela
@ Yokubai: masalahnya, ini adalah data yang tidak dipercaya - data yang berasal dari internet. Windows seharusnya tidak perlu melakukan apa yang diminta oleh data yang tidak tepercaya jika itu tidak untuk kepentingan terbaik pengguna.
Harry Johnston
1
@ HarryJohnston Saya akan lebih khawatir jika tidak menunjukkan semua diakritik, silakan lihat jawaban saya.
Mokubai