Verständnis Unicode: Surrogate Blocks, Noncharacters

Ich versuche tatsächlich zu verstehen, der unicode-standard und bohrte sich durch die xml-spec wo es heißt:

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */

Nun habe ich ein paar Fragen:

  • Was sind die Surrogat-Blöcke? Sind Sie der UTF-16-codes, die angeben, dass ein 4-byte-code zeigen?
  • Hat #xXXXX beziehen sich auf die code-point-oder UTF-16-codierten Wert hier?
  • Wenn es bezieht sich auf den code zeigen und mein Verständnis von der Ersatz-Blöcke korrekt ist: Warum sind die surrogate blocks, die hier erwähnt? Ist es nicht die Aufgabe der Codierung zu verstecken diese encoding-bezogene details aus dem Raum die Codierung von Karten aus?
  • Warum sind nicht-Buchstaben wie „U+FFFE“, definiert als Teil des unicode-Standards? Als nach meinem Verständnis, die Byte-Reihenfolge-Erkennung (sowie flexiblen size-code-Wörter) ist bis auf die Kodierung.

Danke für die Klarstellung!

  • Sind Sie mit der Frage nach der Unicode-Standard oder die W3C-XML-Spezifikation?
  • Über den Unicode-Standard, der im context der XML-Spezifikation 😉 Die 2. Frage bezieht sich auf die Schreibweise verwendet, in der XML-Spezifikation, jedoch möchte ich zum Verständnis der Rolle der Unicode hier. Bisher dachte ich, dass Unicode beschreibt die Menge aller bekannten Symbole (und gibt Ihnen eine Zahl), und dass Codierungen wie UTF-8 beschreiben eine Zuordnung von unicode-Zeichen-stream in einen byte-stream (und Umgekehrt). Aber dann Las ich diese xml-Spezifikation, dass verwirrt mich.
  • stackoverflow.com/q/5903008/995714
  • Bist du eher Antworten zu bekommen, wenn Sie nur eine einzelne Frage stellen.
  • Hmm, ok, aber alle diese Fragen sind eng miteinander verwandt. @LưuVĩnhPhúc: Der Artikel, den Sie erwähnten Staaten: > Der Begriff „Surrogat-paar“ bezieht sich auf Mittel, die die Kodierung der Unicode-Zeichen mit hohe code-Punkte, die in der UTF-16-Codierungsschema. Also, die xml-Spezifikation ist die Verwendung der UTF-16-codierten Werte zur Beschreibung der xml? Ansonsten, in denen surrogate blocks macht nicht viel Sinn. Warum tun Sie das?
InformationsquelleAutor Henning | 2016-04-30



One Reply
  1. 4

    Was sind die Surrogat-Blöcke?

    Unicode-codepoints in der U+D800 zu U+DFFF Reihe, inclusive, die reserviert sind für die ausschließliche Verwendung als UTF-16 surrogates und sind illegal in einem anderen Zusammenhang.

    Sind Sie die UTF-16-codes, die angeben, dass ein 4-byte-code zeigen?

    Ja.

    Tut #xXXXX beziehen sich auf die code-point-oder UTF-16-codierten Wert hier?

    Den eigentlichen Unicode-codepoints. Wenn man bedenkt, dass die definition von Char enthält Werte > #xFFFF, die individuell codierte UTF-16-Werte nicht überschreiten. UTFs sind byte-Codierung-Schemata für die codepoint-Werte. Die XML-Spezifikation ist geschrieben in Bezug auf codepoints, nicht Codierungen. Ein XML-Dokument kodiert werden kann in einer beliebigen Zeichensatz angegeben, die in den „encoding“ – Attribut der XML-prolog, zum Zwecke der Speicherung und übertragung, aber die eigentlichen XML-Inhalt verarbeitet wird, in Bezug auf nicht-codepoints.

    Wenn es bezieht sich auf den code zeigen und mein Verständnis von der Ersatz-Blöcke korrekt ist: Warum sind die surrogate blocks, die hier erwähnt?

    Den Surrogat-codepoints sind reserviert und dürfen nicht erscheinen, nicht in jeder textliche Inhalt. Die Char definition ist einfach der Durchsetzung dieser Regel.

    Warum sind nicht-Buchstaben wie „U+FFFE“, definiert als Teil des unicode-Standards? Als nach meinem Verständnis, die Byte-Reihenfolge-Erkennung (sowie flexiblen size-code-Wörter) ist bis auf die Kodierung.

    Weil die Codierung nicht immer bekannt Voraus, und kann erkannt werden, dynamisch. U+FFFE verwendet wird, wie eine BOM-Markierung zu erleichtern, dass. Frühe Versionen von Unicode erlaubt U+FFFE als entweder eine Stückliste oder eine tatsächliche non-breaking Leerzeichen in Text-content. Führen, um Unklarheiten zu Zeiten. Also neuere Versionen des Unicode-reserve U+FFFE streng als eine Stückliste nur, und non-breaking Abstand erfolgt durch U+2060 WORD JOINER statt zu vermeiden Unklarheiten.

    Dass gesagt wird, die im Kontext von XML, ist es nicht sinnvoll, Sie zu benutzen U+FFFE in jeder textliche Inhalt. Das gesamte Dokument codiert ist, in einem bestimmten Zeichensatz und jede Stückliste verwendet haben würde, zu erscheinen vor dem XML-prolog. Die XML-Spezifikation definiert BOM handling-und charset-Erkennung außerhalb des XML-Dokuments selbst. So, dass ist der Grund, warum die Char definition schließt U+FFFE.

    U+FFFF reserviert ist, und ist nicht dazu gedacht, um jemals verwendet werden, in Echtzeit Inhalte in der Praxis. So, dass ist der Grund, warum die Char definition schließt es.

    Also im Grunde das Char definition können alle Unicode-codepoints minus eingeschränkt codepoints.

    • Danke für den Hinweis hin, dass diese noncharacters definiert wurden, zur Vereinfachung der Codierung von der Handhabung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.