Frage

Die übliche Methode der URL-Kodierung ein Unicode-Zeichen ist, es in 2% HH-Codes aufzuteilen. ( \ u4161 => 61% 41% )

Aber, wie zeichnet Unicode bei der Decodierung? Wie Sie wissen, dass % 41% 61 ist \ u4161 vs. \ x41 \ x61 ( "AA")?

Sind 8-Bit-Zeichen, die Codierung erfordern, mit vorangestelltem % 00

Oder ist der Punkt, wird Unicode-Zeichen soll / split verloren sein?

War es hilfreich?

Lösung

Nach Wikipedia :

  

Aktuelle Standard

     

Die generische URI-Syntax schreibt vor, dass neue URI-Systeme   vorsehen, dass für die Darstellung von   Zeichendaten in einer URI muss, in   Effekt, repräsentieren Zeichen aus der   unreserved Satz ohne Übersetzung,   und sollten alle anderen konvertieren   Zeichen-Bytes entsprechend   UTF-8, und dann diejenigen Prozent-kodieren   Werte. Diese Forderung war   im Januar 2005 mit der Einführung   Veröffentlichung RFC 3986. URI-Systeme   vor diesem Datum eingeführt ist nicht   betroffen.

     

Nicht von der aktuellen adressierte   Spezifikation ist, was zu tun   codierte Zeichendaten. Zum Beispiel,   in Computern, Manifeste Zeichendaten   in codierter Form, auf einer bestimmten Ebene, und   so könnte entweder als binär behandelt werden   Daten oder als Zeichendaten, wenn sein   In den URI Zeichen abgebildet. Vermutlich,   es liegt Schema an den URI   Spezifikationen für diese Rechnung zu tragen   Möglichkeit und erfordern eine oder die   andere, aber in der Praxis nur wenige, wenn überhaupt,   tatsächlich tun.

     

Nicht-Standard-Implementierungen

     

Es gibt eine Nicht-Standard-Codierung   für Unicode-Zeichen:% uxxxx, wo   xxxx ist ein Unicode-Wert dargestellt als   vier hexadezimale Ziffern. Dieses Verhalten   wird von keinem RFC und hat   wurde vom W3C abgelehnt. Der dritte   Ausgabe von ECMA-262 beinhaltet weiterhin eine   escape (string) Funktion, die diese verwendet   Syntax, sondern auch ein encodeURI (uri)   Funktion, die in UTF-8 umwandelt und   Prozent-codiert jedes Oktett.

Also, es sieht aus wie seine ganz auf die Person, um die unencode Methode zu schreiben ... Sind nicht Standards Spaß?

Andere Tipps

Was habe ich immer getan ist erste UTF-8-Unicode-Zeichenfolge es eine Reihe von 8-Bit-Zeichen zu machen, bevor Sie eine Flucht diejenigen mit% HH.

P. S. - Ich kann nur hoffen, dass die Nicht-Standard-Implementierungen (% uxxxx) sind wenige und weit zwischen

.

Da URI eingeführt wurden, bevor Unicode um war, oder zumindest in breiten Gebrauch, ich denke, das ist eine sehr spezifische Umsetzung Frage. UTF-8-Codierung Ihren Text, dann entweicht dass pro normalen klingt wie die beste Idee, da diese mit einer beliebigen ASCII / ANSI-Systeme anstelle vollständig rückwärtskompatibel ist, wenn Sie die ungerade wierd Charakter oder zwei bekommen könnte.

Auf der anderen Seite, entschlüsseln, können Sie Ihren Text unescape würden, und einen UTF-8-String bekommen. Wenn jemand ein älteres System versuchen Ihnen in ASCII / ANSI einige Daten zu senden, es gibt keinen Schaden getan, das ist (fast) UTF-8 kodierten bereits.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top