Sokrates: prüfen ob eine Eingabe in einem Input-Feld GB 2312 enthält

Beitrag lesen

Hallöle,

ja, an den 'accept-charset-Attribut' hatte ich auch schon gedacht. Das blöde ist nur das ich innerhalb des selben Formulars sicherstellen muss das ein paar Angaben in chinesischen Zeichen und ein Paar in lateinischen Buchstaben erfolgt. Ich suche nach einer Methode mit der ich erkennen kann ob es sich dabei um ein Zeichen handelt das ein chinesisches sein könnte. Hab dabei auch an so lustige Dinge wie den Ausschluss von allen ascii-zeichen die nicht zur Codieren von GB 2312 benutzt werden. In javascript sehen die chinesischen Zeichen ungefähr so aus. 匶 Wäre es nicht ein möglicher Ansatz zu Prüfen ob der Wert zw. ✐ und  &#70000 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.

Bin dankbar für jeden Vorschlag.

Browser sind zunächst nicht das Problem da dies nur von ausgewählten Partner in China benutzt werden wird. Die können wir hoffentlich zwingen einen bestimmten Browser zu benutzen. php-Lösungen wären mir allerdings lieber. Zur Erzwingung würde es mir übrigens genügen wenn er nach der Eingabe oder nach dem Absenden gesagt bekäme das die Eingabe falsch war und er das gefälligst so oder so machen soll.

Danke weiterhin

echo $begrüßung;

»» weis jemand wie man prüft ob eine Eingabe in einem Input-Feld dem Zeichensatz GB 2312 für vereinfachtes chinesisch entspricht, bzw. wie man es erzwingt.

Einen Text kann man nur gemäß den Regeln einer bestimmten Zeichenkodierung prüfen. Das geht nur mit Mehrbyte-Kodierungen, die für bestimmte Bytefolgen ein Zeichen definieren und andere als ungültig erklären. Finden sich keine ungültigen Bytefolgen, ist das allerdings nur ein Indiz, denn die Bytefolgen können unter Umständen auch zu anderen Kodierungen passen und außerdem gibt es immer noch jede Menge Einbyte-Kodierungen, die im Prinzip immer passen. Man könnte dann nur anhand von Wahrscheinlichkeiten bestimmte Kodierungen ausschließen. Das Ergebnis der Dekodierung kann aber letztlich nur ein Mensch als sinnvoll oder nicht beurteilen. Ansätze mit Prüfungen gegen Wörterbücher liefern nicht in jedem Fall ein korrektes Ergebnis.

Zwingen kann man einen Browser in keinem Fall. Man kann Vorgaben machen und hoffen, dass Browser und Anwender sie einhalten. Da wären die Kodierung der Seite in der das Formular/Eingabefeld steht und das accept-charset-Attribut eines Formulars, aber letzteres wird nicht in jedem Fall sinnvoll von den Browser berücksichtigt.

echo "$verabschiedung $name";