2009-05-22 15 views
1

Ich habe bereits Spolsky Artikel über Zeichencodierung gelesen, sowie this from dive into python 3. Ich weiß, dass PHP irgendwann Unicode bekommt, aber ich habe Schwierigkeiten zu verstehen, warum das so eine große Sache ist.Unicode in PHP

Wenn php-CLI verwendet wird, ist es sinnvoll. In der Welt des Web-Servers ist es jedoch nicht Sache des Browsers, diese ganze Zahl zu verwenden und sie in ein Zeichen umzuwandeln (basierend auf Zeichencodierung).

Was bekomme ich nicht?

Antwort

0

Nun, für eine Sache, müssen Sie irgendwie die Saiten in den Browser generieren :-)

+0

ja, ein String ist ein unveränderliches Array von Bytes. praktisch bedeutungslos ohne irgendeine Art von Kodierungsschema. Pflege um zu erarbeiten? –

+2

Genau. Und wenn die Stringmanipulationsfunktionen nicht wissen, wie das Codierungsschema gehandhabt wird, wie sollen sie richtig funktionieren? – n3rd

+1

ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh –

0

Es ist ein geiles FAQ-Bereich auf Unicode und das Web here. Sehen Sie, wenn es einige Ihrer Fragen beantwortet.

1

Die PHP-String-Funktionen behandeln Strings oft als Folgen von 8-Byte-Zeichen. Ich hatte alle möglichen Probleme mit chinesischem Text durch die String-Funktionen. substr() zum Beispiel kann ein Multi-Byte-Zeichen in zwei Hälften schneiden, was alle möglichen Probleme für XML-Parser verursacht.

4

PHP unterstützt UTF8, schauen Sie sich die mbstring 1 Erweiterung an. Das meiste Problem kommt von PHP-Entwicklern, die die mb * -Funktionen beim Umgang mit UTF8-Daten nicht verwenden.

UTF8-Zeichen sind oft mehr als ein Zeichen, also müssen Sie Funktionen verwenden, die diese Tatsache wie mb_strpos 2 eher als strpos 3 zu schätzen wissen.

Es funktioniert gut, wenn Sie UTF8 aus dem Browser bekommen -> Datenbank einfügen -> es wieder raus -> es für den Benutzer anzeigen. Wenn Sie etwas mit UTF8-Daten (oder einer anderen wichtigen Textverarbeitung) tun, sollten Sie eine alternative Sprache in Betracht ziehen.