Moin!
»» In javascript sehen die chinesischen Zeichen ungefähr so aus. 匶
Nein, so sehen sie in Javascript nie aus. Javascript arbeitet komplett in Unicode, da treten keine numerischen Zeichenreferenzen auf.
Wenn numerische Zeichenreferenzen (oder Entities) im HTML-Quelltext stehen, wandelt der Browser sie beim Laden der Seite in das zugehörige Unicode-Zeichen um, bevor Javascript darauf zugreifen kann. Javascript sieht nur das Unicode-Zeichen. Und wenn diese Zeichenreferenzen im Javascript-Teil stehen, dann werden sie dort als eine Zeichenkette von &-Zeichen, #-Zeichen, Ziffern und Semikolon gewertet, nicht als Unicode-Zeichen. Um ohne unicode-fähige Zeichencodierung in Javascript-Quelltext Unicode-Zeichen zu transportieren, wäre die Javascript-Form des Zeichenescapings notwendig: string = "\u5336"; (hexadezimale Zahlendarstellung von 21302).
Wäre es nicht ein möglicher Ansatz zu Prüfen ob der Wert zw. ✐ und 𑅰 liegt. wobei ich die Zahlen einfach mal schätze. Müsste mich noch informieren ob es da einen eingegrenzten Bereich gibt in dem vereinfachtes chinesisch liegt.
Würde Unicode bzw. die Codierung UTF-8 verwendet, wären chinesische Zeichen eindeutig anhand ihres Zeichencodes identifizierbar. Wobei einschränkend gesagt werden muss, dass der Zeichenbereich für "chinesische" Zeichen aufgrund einer Vereinheitlichungsbemühung der Zeichendarstellung von Chinesisch, Japanisch und Koreanisch (Abkürzung: CJK) zusammenfällt, und es durchaus Muttersprachler in allen drei betroffenen Sprachregionen gibt, die über die getroffenen Vereinheitlichungen nicht sehr glücklich sind. Das Auftreten von Zeichen aus dem entsprechenden Zeichenbereich ist also kein sicherer Indikator für "chinesisch" - aber dasselbe Problem haben wir ja auch mit dem europäischen Alphabet: Die 26 Zeichen sind kein sicherer Indikator für z.B. Englisch.
Das sind nummerische Zeichenreferenzen (NCR), die Unicode entsprechen. Es gibt aber keine Garantie, dass alle Browser zu NCRs greifen, wenn Zeichen eingegeben werden, die nicht in der Kodierung der das Formular enthaltenden Seite vorkommen. Nimm lieber gleich konsequent UTF-8.
Das muss ich unterstreichen: Es ist heutzutage bei allen Neuentwicklungen vollkommener Schwachsinn, auf UTF-8 zu verzichten. In die Encoding-Hölle mit proprietären Zeichentabellen will man sich einfach nicht begeben. Nur mit UTF-8 ist sicherstellbar, dass die Browser wirklich alle Zeichen verarbeitbar und unbeschädigt an den Server übertragen. Alle anderen Codierungen, die jeweils nur einen Teilbereich der Unicode-Zeichen definieren, leiden immer daran, dass es Zeichenverluste geben kann.
Wenn man die Zeichen erst einmal unbeschädigt auf dem Server hat, kann man immer noch darangehen und Filterregeln anwenden, um als unzulässig definierte Zeichen auszuschließen. Aber das primäre Interesse sollte immer sein, die Zeichen erst einmal komplett und vollständig zu erhalten.
- Sven Rautenberg