Warum zeichnen bestimmte Zeichen in Windows schrecklich, schrecklich falsch?

16

Ungerade Zeichen:

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

Frage: Warum zeichnen diese Zeichen so merkwürdig, wenn Sie sie in Windows * betrachten?

Hier ist ein Auszug aus Outlook für Ihre glücklichen Bastarde, die nicht gezwungen sind, Windows zu verwenden:

Zeug

Verwandte: Was ist die verwendete Zeichenkodierung?

* Windows wie im Betriebssystem. Anwendungen, die Text mit GTK + und Ähnlichem zeichnen, zeigen diese nicht wie etwas aus einem LSD-Trip, der schief gelaufen ist .

Marcus Hansson
quelle
Wollen Sie damit sagen, dass auf Ihrem Windows-Computer die Zeichen, die Sie in die Frage eingegeben haben, den Zeichen im Bild entsprechen? Weil die eingegebenen Zeichen auf meinem Windows-Computer gut aussehen.
Dsolimano
1
Ihre Frage enthält eine unbegründete Behauptung - dass Windows sie "falsch" zeichnet. Es wäre hilfreich, wenn Sie angeben würden, wie sie Ihrer Meinung nach gezeichnet werden sollten und was speziell an der Art und Weise, wie Windows sie zeichnet, falsch ist.
David Schwartz
2
Ich wäre gespannt, wie die anderen Betriebssysteme damit umgehen, ich sehe nur, wie Windows es macht und für mich scheint das "richtig" zu sein.
Mokubai

Antworten:

10

Da ich den Eindruck gewonnen habe, dass Windows "es richtig macht", sollte ich eine Antwort veröffentlichen, um meine Position zu rechtfertigen.

Tatsache ist, dass der Text, den Sie haben, das Betriebssystem anweist, eine verrückte Menge kombinierter Zeichen zu rendern. Das Problem, dass ein Betriebssystem sie tatsächlich rendert, während ein anderes dies nicht tut, ist auf eine Reihe von Problemen zurückzuführen. Eines dieser Probleme ist, wie gründlich die Programmierer waren, als sie den Code geschrieben haben, um sie zu rendern. Ein anderes Problem ist, dass Programmierer zu faul sind, sie, wenn überhaupt, richtig zu implementieren.

Grundsätzlich geht es darum, dass geschriebene Sprachen fließende Dinge sind und dass viele Zeichen in bestimmten Sprachen mehrere verschiedene diakritische Zeichen enthalten , die angewendet werden, um die Aussprache von Zeichen zu ändern. Wie gehen wir mit all diesen diakritischen Zeichen um, geben wir jedem Buchstaben mit einem diakritischen Zeichen ein neues Zeichen (was zu einer Menge neuer und nahezu identischer Zeichen führen würde) oder erstellen wir einen Zeichensatz speziell für diakritische Zeichen und reduzieren unseren Gesamtalphabet?

Unicode gibt uns die Möglichkeit, beides zu tun. Dabei müssen sich die Programmierer, die diese diakritischen Zeichen darstellen müssen, mit der Tatsache auseinandersetzen, dass es einige Zeichen gibt, die tatsächlich mehrere diakritische Zeichen aufweisen, eines darüber und eines darunter, und dann das Programmierprogramm die Frage zu stellen, wann sie aufhören. Sie könnten es auf zwei beschränken und die meisten Menschen zufriedenstellen, aber diejenigen ignorieren, die drei diakritische Zeichen wollen oder brauchen, um formal in ihrer eigenen Sprache zu schreiben.

Microsoft hat zu Recht oder zu Unrecht entschieden, den Benutzer entscheiden zu lassen, wie viele zusätzliche Marken eine Person verwenden möchte. Dieser Weg erfordert einen ziemlich guten Programmierer und einige schwierige Rationalisierungen. Ich unterstütze sie voll und ganz dabei, dies und die Tatsache, dass sie es gut machen, zuzulassen .

Wenn diese Zeichen andererseits fehlen würden, würde ich gerne wissen, warum sie fehlen. War es eine xEntscheidung, dass wir dies nach einer diakritischen Entscheidung auf den Boden fallen lassen , oder lag es daran, dass die Programmierer zu faul waren, dies richtig zu tun, und dass ich möglicherweise einem Pufferüberlauf ausgesetzt war, in dem Code, der in der diakritischen Anweisung verborgen war, ohnmächtig wurde, von ausgeführt zu werden das System?

Das einfache Problem hierbei ist, dass ich durch das tatsächliche Rendern dieser Zeichen erkennen kann, dass das System genau das tut, was es tun soll, anstatt das zu tun, was es für richtig hält, oder, schlimmer noch, etwas potenziell Schädliches zu tun .

Mokubai
quelle
11
Oder: Warum zeichnet Windows so gut schrecklich, schrecklich falsche Zeichen?
mtone
Das Bedecken des Textes einer anderen Person erfüllt die Kriterien für "potenziell schädlich" in meinem Buch. (Vielleicht ist die Nachricht, die vertuscht wird, wichtig.) Übrigens wäre meine bevorzugte Lösung eher eine Form des Clippings als eine Begrenzung der Anzahl der diakritischen Zeichen. (Wenn es wirklich Sprachen gibt, in denen Zeichen verwendet werden, die sich mit Zeichen in benachbarten Zeilen überschneiden, ist es mir egal, ob das so ist!)
Harry Johnston
Weiter: Da es unwahrscheinlich ist, dass MS dieses Verhalten bald ändern, versuchen Facebook und andere Websites, die Benutzerdaten akzeptieren, wahrscheinlich, den Zeichensatz selbst zu bereinigen, um zu verhindern, dass Scherze diese "Funktion" missbrauchen. Leider kann der Desinfektionsprozess durchaus unerwünschte Nebenwirkungen haben. Wenn Windows die Ausgabe beschneiden würde, wäre dies nicht erforderlich.
Harry Johnston
4

Warum zeichnen diese Zeichen so merkwürdig, wenn Sie sie in Windows * betrachten?

Weil Windows versucht, eine große Anzahl von Unicode- Kombinationszeichen zu rendern , wenn Ihr Text sie enthält, obwohl kein tatsächliches Skript jemals so viele Zeichen zusammenfügen würde.

RedGrittyBrick
quelle
Vermutlich bedeutet dies, dass Windows das "Richtige" tut, anstatt die Anzahl der kombinierbaren Zeichen einzuschränken.
Mokubai
Siehe auch superuser.com/questions/389333/…, was darauf hinzudeuten scheint, dass solche Tricks bei Facebook an Beliebtheit gewonnen haben.
Jukka K. Korpela
@ Mokubai: Das sind nicht vertrauenswürdige Daten - Daten, die aus dem Internet stammen. Windows sollte nicht unbedingt das tun, was nicht vertrauenswürdige Daten von ihm verlangen, wenn dies möglicherweise nicht im besten Interesse des Benutzers liegt.
Harry Johnston
1
@HarryJohnston Ich wäre besorgter, wenn nicht alle diakritischen Zeichen angezeigt würden. Bitte sehen Sie meine Antwort.
Mokubai