Pourquoi certains personnages dessinent-ils horriblement, horriblement mal dans Windows?

16

Caractères étranges:

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

Question: Pourquoi ces personnages sont-ils si étranges lorsque vous les regardez dans Windows *?

Voici un extrait d'Outlook pour vous, bâtards chanceux qui ne sont pas obligés d'utiliser Windows:

Des trucs

En relation: Quel est l'encodage de caractères utilisé?

* Windows comme dans l'OS. Les applications qui dessinent du texte en utilisant GTK + et les goûts ne les montrent pas comme quelque chose d'un voyage LSD qui a mal tourné .

Marcus Hansson
la source
Voulez-vous dire que sur votre machine Windows, les caractères que vous avez tapés dans la question ressemblent aux caractères de l'image? Parce que les caractères saisis sont corrects sur ma machine Windows.
dsolimano
1
Votre question contient une affirmation non fondée - que Windows les tire "mal". Il serait utile que vous indiquiez comment vous pensez qu'ils devraient être dessinés et ce qui ne va pas spécifiquement avec la façon dont Windows les dessine.
David Schwartz
2
Je serais curieux de voir comment les autres systèmes d'exploitation gèrent cela, je ne vois que comment Windows le fait et cela me semble "correct".
Mokubai
1
Également lié: en.wikipedia.org/wiki/Combining_character
iglvzx

Réponses:

10

Comme je semble avoir pris un peu de succès pour penser que Windows "fait les choses correctement", je pense que je devrais poster une réponse pour justifier ma position.

Le fait est que le texte que vous avez indique au système d'exploitation de rendre une quantité folle de combinaison de caractères. Le problème qu'un système d'exploitation les rend réellement alors qu'un autre ne le fait pas est dû à un certain nombre de problèmes. L'un de ces problèmes est la minutie des programmeurs lorsqu'ils ont écrit le code pour les rendre, un autre serait dû au fait que les programmeurs sont trop paresseux pour les implémenter correctement, voire pas du tout.

Fondamentalement, cela revient à l'idée que les langues écrites sont des choses fluides et que de nombreux caractères dans certaines langues ont plusieurs diacritiques différents qui s'appliquent pour modifier la prononciation des caractères. Comment traitons-nous tous ces signes diacritiques, donnons-nous à chaque lettre avec un signe diacritique un nouveau caractère (ce qui entraînerait un sacré grand nombre de caractères nouveaux et presque identiques) ou créons-nous un ensemble de caractères spécifiquement pour les signes diacritiques et réduisons notre alphabet général?

Unicode nous donne la possibilité de faire les deux, mais ce faisant, les programmeurs qui doivent rendre ces signes diacritiques doivent faire face au fait qu'il y a des caractères qui ont en fait plusieurs signes diacritiques, un au-dessus et un en dessous, puis le programmeur a de poser la question de savoir quand s'arrêtent-ils. Ils pourraient le limiter à deux, et satisfaire la plupart des gens mais ignorer ceux qui veulent ou ont besoin de trois signes diacritiques pour écrire formellement dans leur propre langue.

Microsoft, à tort ou à raison, a décidé de laisser l'utilisateur décider du nombre de marques supplémentaires qu'une personne souhaite utiliser. Ce chemin prend un assez bon programmeur et une rationalisation difficile à suivre. Je les soutiens pleinement en autorisant cela et en le faisant bien .

Si ces personnages manquaient en revanche, je voudrais savoir pourquoi ils manquaient. Était-ce une xdécision "nous laissons tomber sur le sol après les signes diacritiques", ou était-ce dû au fait que les programmeurs étaient trop paresseux pour le faire correctement et m'exposaient potentiellement à un débordement de tampon avec du code caché dans les signes diacritiques transmis pour être exécuté par le système?

Le problème simple ici est qu'en rendant ces caractères, je peux voir que le système fait exactement ce qu'on lui dit de faire, plutôt que de faire ce qu'il pense être juste ou, pire, faire quelque chose de potentiellement dangereux .

Mokubai
la source
11
Ou: pourquoi Windows dessine-t-il si bien des personnages horriblement mauvais?
mtone
Couvrir le texte de quelqu'un d'autre répond aux critères de «potentiellement dangereux» dans mon livre. (Peut-être que le message dissimulé est important.) Soit dit en passant, ma solution préférée serait une forme d'écrêtage plutôt qu'une limitation du nombre de signes diacritiques. (S'il y a vraiment des langues qui utilisent des caractères qui se chevauchent avec des caractères sur des lignes adjacentes, je m'en fiche!)
Harry Johnston
De plus: comme il est peu probable que MS modifie ce comportement de sitôt, Facebook et d'autres sites qui acceptent les données des utilisateurs sont susceptibles d'essayer de nettoyer eux-mêmes le jeu de caractères afin d'empêcher les farceurs d'utiliser abusivement cette "fonctionnalité". Malheureusement, le processus de désinfection peut bien avoir des effets secondaires indésirables. Si Windows écrêtait la sortie, cela ne serait pas nécessaire.
Harry Johnston
4

Pourquoi ces personnages sont-ils si étranges lorsque vous les regardez dans Windows *?

Parce que Windows tente de rendre un grand nombre de caractères de combinaison Unicode lorsque votre texte les contient, même si aucun script réel ne combinera jamais autant de marques ensemble.

RedGrittyBrick
la source
Vraisemblablement, cela signifie que Windows "fait les choses correctement" selon ce qui lui est réellement demandé plutôt que d'imposer des limites sur le nombre de caractères de combinaison pouvant être utilisés.
Mokubai
Voir aussi superuser.com/questions/389333/… qui semble indiquer que de telles astuces ont gagné en popularité sur Facebook.
Jukka K. Korpela
@Mokubai: ce sont des données non fiables - des données provenant d'Internet. Windows ne devrait pas nécessairement faire ce que les données non fiables lui demandent s'il n'est pas dans l'intérêt de l'utilisateur.
Harry Johnston
1
@HarryJohnston Je serais plus inquiet si cela ne montrait pas tous les signes diacritiques, veuillez voir ma réponse.
Mokubai