Warum Fragezeichen angezeigt im web-browser?
War ich (wieder)Lesen Joel ist toll, Artikel auf Unicode und kam in diesem Absatz, was ich nicht ganz verstehe:
Beispielsweise könnten Sie die Kodierung der Unicode-string Hello (U+0048
U+0065 U+006C U+006C U+006F) im ASCII-oder das alte OEM-Griechisch-Codierung,
oder die hebräischen ANSI-Codierung, oder einem der mehreren hundert Codierungen, die
erfunden worden, so weit, mit einen Haken: einige der Briefe könnte
nicht zeigen, bis! Wenn es keine Entsprechung für den Unicode-code-point
versuchen Sie zu repräsentieren in der Codierung, die Sie versuchen zu vertreten
es in, erhalten Sie in der Regel ein kleines Fragezeichen: ? oder, wenn Sie wirklich
gut, einen Kasten. Was hast du bekommen? -> �
Warum gibt es ein Fragezeichen, und was meint er damit, von "oder, wenn Sie wirklich gut, eine box"? Und welchen Charakter wird er versuchen, die Anzeige?
- ...Jahre später... merkte ich, der Autor dieses Artikels ist der CEO von stack overflow 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da ist ein Fragezeichen, weil der encoding-Prozess, erkennt an, dass die Codierung nicht unterstützen den Charakter und ersetzt ein Fragezeichen statt. Von "wenn du bist wirklich gut," meint er, "wenn Sie einen neueren browser haben und die richtige schriftart-Unterstützung" erhalten Sie ein Liebhaber substitution Charakter, eine box.
In Joels Fall, er wird nicht versucht, die Anzeige einer realen Figur, die er wörtlich enthalten die Unicode-Ersatzzeichen, U+FFFD REPLACEMENT CHARACTER.
Es ist ein ziemlich verwirrender Absatz, und ich weiß nicht wirklich, was der Autor zu sagen versucht. Sowieso, verschiedene Browser (und anderen Programmen) haben unterschiedliche Wege im Umgang mit Problemen mit Zeichen. Ein Fragezeichen "?" erscheint im Ort ein Zeichen, für die es keine Glyphe im font(s) verwendet werden, so dass es effektiv sagt "ich kann nicht den Charakter." Browser können alternativ verwenden Sie ein kleines Rechteck, oder irgendeine andere Anzeige, die für den gleichen Zweck.
Aber die " � " - symbol ist ein ERSATZ-ZEICHEN, das normalerweise verwendet wird, um anzuzeigen Daten Fehler, z.B. bei Zeichen, die Daten konvertiert wurde, von der einige in Unicode-Codierung und es enthielt einige Zeichen nicht dargestellt werden können in Unicode. Browser verwenden oft "�" im display für ähnliche Zwecke: um anzuzeigen, dass character-Daten fehlerhaft ist, enthält bytes, die nicht als ein Zeichen, in der Zeichen-Codierung angewendet wird. Dies geschieht oft, wenn die Daten in einigen Kodierung behandelt wird, als wäre es in einer anderen Kodierung.
So "�" bedeutet nicht wirklich "unbekannte Zeichen", noch weniger "undisplayable Charakter". Es bedeutet vielmehr, dass "kein Zeichen".
Einem Fragezeichen angezeigt wird, wenn ein byte-Reihenfolge, in der die raw-Daten nicht mit den Daten Zeichensatz, so dass es nicht richtig dekodiert. Das passiert, wenn die Daten ist ungültig, wenn die Daten charset ist explicitally falsch angegeben im HTTP-Header oder HTML-sich, das charset falsch erraten ist, die durch den browser, wenn andere Informationen fehlen, oder die Benutzer-browser-Einstellungen überschreiben die Daten charset mit einem inkompatiblen Zeichensatz.
Erscheint ein Feld, wenn eine entschlüsselte Zeichen nicht in der schriftart, die verwendet wird, um die Daten anzuzeigen.
Nur, was es sagt - einige Browser zeigen "einem seltsamen Zeichen" oder ein Fragezeichen für Zeichen, die außerhalb der aktuell bekannten Zeichensatz. Es ist Ihr "hey, ich weiß nicht, was das ist" - Charakter. Holen Sie eine alte version von Netscape, fügen Sie einige text-form Microsoft Word ist die Verwendung von smart-Zitate, und Sie bekommen ein Fragezeichen.
http://blog.salientdigital.com/2009/06/06/special-characters-showing-up-as-a-question-mark-inside-of-a-black-diamond/ hat eine anständige Erklärung.