TS: Zeichenkodierung finden

Beitrag lesen

Hallo und guten Morgen,

Das System hat bei Datenbank-Feldern vom Typ Text nur eine Kapazität von 250 Zeichen. Größere Datenmengen müssen in BLOB-Feldern abgelegt werden. Anwender hat einen Text in Word verfasst, den kopiert

Wie? Per Zischenablage auf WIndows-System?

und in ein Text-Eingabefeld eingefügt

Wie? Per Browser auf Windows?
Welche Codierung verwendet das Dokument?

(da kann man mehr als 250 Zeichen reinwerfen). Nun kam ein Stück Code, dass einen Stream in das BLOB-Feld eröffnet hat und den Inhalt da reinschob. In dem System ist keinerlei Möglichekeit zur Angabe einer Zeichenkodierung vorhanden.

In welchem Teil vom System?

Windows wird vermutlich CP-1252 verwenden. Und es wird, da die Daten erst einmal auf dem System bleiben, an die Zischenablage auch eine Fontangabe für die Revisualisierung der Zeichen mitgeben.

Der Browser wandelt dann in Zusammenarbeit mit dem OS vermutlich die Zeichen schon mal in UTF-8-Codierung um, um sie dann an das Backend zu senden. Dort werden sie entweder 1:1 byteorentiert in die DB eingetragen, oder aber wenn die ein anderes Transferencoding annimmt, nochmal umcodiert. Wenn jetzt für eine Spalte noch eine weitere Codierung angegeben ist, wird es ganz verrückt.

Du wirst das (mit Glück) nur mit dem Wissen über den benutzten Font wieder human readable machen können.

Und die letzte Frage wie immer zum Schluss:
Kann das DBMS in den Spalten vom Typ Text 250 Bytes, oder 250 Zeichen speichern? Da könnte also auch etwas verloren gegangen sein?

Grüße
TS

--
es wachse der Freifunk
http://freifunk-oberharz.de