Forum: PC-Programmierung Zeichencodierung: alle UTF-8 sind gleich aber einige UTF-8 sind gleicher?


von Textler (Gast)


Angehängte Dateien:

Lesenswert?

guetemorge Forumaners,

ich verstehe grad die Welt der Zeichencodierung nicht mehr :-/

Gegeben sind 2 Textdateien, beide enthalten dieselben 2 Datensaetze in 
CSV (FS=';') welche Umlaute enthalten.

Die 2 Dateien sind offensichtlich unterschiedlich was genau die 
Sonderzeichen angeht, wie man mit 'cat'/'cat -A' sehen kann.

Trotzdem sind sowohl 'file' wie auch 'chardet' der Meinung beides sei 
in UTF-8 codiert.

Ich bitte um Aufklaerung ueber was ich vor lauter Baeume am uebersehen 
bin.
Anders gefragt:
 * wie detektiere ich die echte Zeichencodierung /Richtig[TM]/ ?
 * wie heisst die Zeichencodierung von VarianteA.csv /Richtig[TM]/ ?
 * wie heisst die Zeichencodierung von VarianteB.csv /Richtig[TM]/ ?

Dankesehr!
1
$
2
$ cat VarianteA.csv 
3
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;1;"Verlagsneu. Ein ""ruchhaariger, chiber Mensch, der sein fünfjähriges Kind Kathrini 1884 zu Tode züchtigte"".";de;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;15;450;19,50;;;;Regionalgeschichte;0;0;0;0
4
4;;China: Die Schlichtung von Streitigkeiten;Verlag für Fremdsprachige Literatur;;;Beijing;Taschenbuch;1;Verlagsneu, chinesische Buchqualität. Das chinesische Modell: In diesem Buch werden die Ursprünge und die Grundzüge des Systgems der Volksschlichtungsausschüsse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;de;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0
5
$ cat VarianteB.csv 
6
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;wie neu;Verlagsneu. Ein "ruchhaariger, chiber Mensch, der sein fnfj„hriges Kind Kathrini 1884 zu Tode zchtigte".;Deutsch;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;015;450;19,50;;;;Regionalgeschichte;0;0;0;0
7
4;;China: Die Schlichtung von Streitigkeiten;Verlag fr Fremdsprachige Literatur;;;Beijing;Taschenbuch;wie neu;Verlagsneu, chinesische Buchqualit„t. Das chinesische Modell: In diesem Buch werden die Ursprnge und die Grundzge des Systgems der Volksschlichtungsausschsse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;Deutsch;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0
8
$ 
9
$ chardet Variante?.csv
10
VarianteA.csv: utf-8 with confidence 0.99
11
VarianteB.csv: utf-8 with confidence 0.99
12
$ 
13
$ file Variante?.csv
14
VarianteA.csv: UTF-8 Unicode text, with very long lines
15
VarianteB.csv: UTF-8 Unicode text, with very long lines
16
$ chardet Variante?.csv
17
VarianteA.csv: utf-8 with confidence 0.99
18
VarianteB.csv: utf-8 with confidence 0.99
19
$ 
20
$ cat -A VarianteA.csv 
21
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;1;"Verlagsneu. Ein ""ruchhaariger, chiber Mensch, der sein fM-CM-<nfjM-CM-$hriges Kind Kathrini 1884 zu Tode zM-CM-<chtigte"".";de;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;15;450;19,50;;;;Regionalgeschichte;0;0;0;0$
22
4;;China: Die Schlichtung von Streitigkeiten;Verlag fM-CM-<r Fremdsprachige Literatur;;;Beijing;Taschenbuch;1;Verlagsneu, chinesische BuchqualitM-CM-$t. Das chinesische Modell: In diesem Buch werden die UrsprM-CM-<nge und die GrundzM-CM-<ge des Systgems der VolksschlichtungsausschM-CM-<sse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;de;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0$
23
$ cat -A VarianteB.csv 
24
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;wie neu;Verlagsneu. Ein "ruchhaariger, chiber Mensch, der sein fM-BM-^AnfjM-BM-^Dhriges Kind Kathrini 1884 zu Tode zM-BM-^Achtigte".;Deutsch;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;015;450;19,50;;;;Regionalgeschichte;0;0;0;0$
25
4;;China: Die Schlichtung von Streitigkeiten;Verlag fM-BM-^Ar Fremdsprachige Literatur;;;Beijing;Taschenbuch;wie neu;Verlagsneu, chinesische BuchqualitM-BM-^Dt. Das chinesische Modell: In diesem Buch werden die UrsprM-BM-^Ange und die GrundzM-BM-^Age des Systgems der VolksschlichtungsausschM-BM-^Asse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;Deutsch;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0$
26
$

(na gut: das Log meiner Kommandozeilensitzung -insbesondere Ausgabe von 
'cat'- mag nicht 100% sein; Referenz ist die Ausgabe von 'cat -A')

von Rainer U. (r-u)


Lesenswert?

Guck mal mit einem Hex-Editor in die Dateien.

von Clemens L. (c_l)


Lesenswert?

Variante B:
1
000080: 6E 20 66 C3 BC 6E 66 6A  C3 A4 68 72 69 67 65 73 n f..nfj..hriges

C3 BC ist die korrekte UTF-8-Kodierung von "ü".

Variante A:
1
000080: 20 73 65 69 6E 20 66 C2  81 6E 66 6A C2 84 68 72  sein f..nfj..hr

C2 81 erhält man, wenn man "ü" in einer MS-DOS-Codepage (437 oder 850) 
betrachtet (Zeichencode 129), dann so tut, als sei das die übliche 
Windows-Codepage 1252 (in der 129 nicht "ü" ist), und das dann nach 
UTF-8 umwandelt.

von Kaj (Gast)


Lesenswert?

Textler schrieb:
> beide enthalten dieselben
Aeh, nein. Tun sie nicht.
1
Variante A:
2
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;1;"Verlagsneu.
3
4
... Beijing;Taschenbuch;1;Verlagsneu, ...
5
6
7
8
Variante B:
9
3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;wie neu;Verlagsneu.
10
11
... Beijing;Taschenbuch;wie neu;Verlagsneu, ...
Das ist weder dasselbe noch das gleiche. Die Datensaetze sind 
unterschiedlich, und das nicht nur bei den Sonderzeichen.

von MaWin (Gast)


Lesenswert?

Ist Variante B doppelt encodiert?
1
>>> open("VarianteA.csv", "rb").read().decode("UTF-8")
2
'3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;1;"Verlagsneu. Ein ""ruchhaariger, chiber Mensch, der sein fünfjähriges Kind Kathrini 1884 zu Tode züchtigte"".";de;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;15;450;19,50;;;;Regionalgeschichte;0;0;0;0\n4;;China: Die Schlichtung von Streitigkeiten;Verlag für Fremdsprachige Literatur;;;Beijing;Taschenbuch;1;Verlagsneu, chinesische Buchqualität. Das chinesische Modell: In diesem Buch werden die Ursprünge und die Grundzüge des Systgems der Volksschlichtungsausschüsse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;de;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0\n'
3
4
>>> open("VarianteB.csv", "rb").read().decode("UTF-8")
5
'3;Merki, Martin;Ein Luzerner Todesurteil: Jakob Mattmann;;;;;Hardcover;wie neu;Verlagsneu. Ein "ruchhaariger, chiber Mensch, der sein f\x81nfj\x84hriges Kind Kathrini 1884 zu Tode z\x81chtigte".;Deutsch;9783859210943;112 S. Zahl. Abbildungen. Verlagsneu.;16,5 x 21,5 cm;015;450;19,50;;;;Regionalgeschichte;0;0;0;0\n4;;China: Die Schlichtung von Streitigkeiten;Verlag f\x81r Fremdsprachige Literatur;;;Beijing;Taschenbuch;wie neu;Verlagsneu, chinesische Buchqualit\x84t. Das chinesische Modell: In diesem Buch werden die Urspr\x81nge und die Grundz\x81ge des Systgems der Volksschlichtungsaussch\x81sse dargestellt sowie die Prinzipien, die bei der Vermittlungsarbeit angewandt werden, mit Beispielen.;Deutsch;9787119003955;107;12 x 18,5 cm;382;115;10,80;;;;China / Schlichtungsgremien;0;0;0;0\n'

von Textler (Gast)


Lesenswert?

Kaj schrieb:
> Textler schrieb:
>> beide enthalten dieselben
> Aeh, nein. Tun sie nicht.
:
> Das ist weder dasselbe noch das gleiche. Die Datensaetze sind
> unterschiedlich, und das nicht nur bei den Sonderzeichen.

Ja, tschuldigung: "..;1;.." habe ich von hand umgemappt auf "..;wie 
neu;.."

Das ist das sentinel easteregg um festzustellen wer genau hinschaut 
;-)

Danke fuer's genau hinschauen.
!Danke fuer's !(auf die Codierproblematik eingehen).

von Textler (Gast)


Lesenswert?

@Clemens L.
@MaWin

Herzlichen Dank fuer das Prompte helfen: dank euren Denkanstoesse konnte 
ich meine "Blokade" ueberwinden und VarianteA als korrektes UTF-8 
identifizieren.

Der Hinweis "CodePage falsch angewendet" hat den Bock bei mir ein paar 
Prozessschritte davor entlarvt.


Mein bisheriges Vertrauen in 'file' und 'chardet' ist insbesondere was 
UTF-8 angeht nun aber arg erschuettert  :-(

von c.m. (Gast)


Lesenswert?

vielleicht willst du vor die UTF-8 encodierten dateien noch eine 
entsprechende BOM zeichenfolge setzen, damit programme die diese 
auswerten sich auch für das richtige format entscheiden.
https://de.wikipedia.org/wiki/Byte_Order_Mark

oder du hast schon eine BOM dran, und willst sie weg machen - hatte vor 
kurzem eine unschöne erfahrung mit einem UTF-8 php-script das einfach 
nicht laufen wollte deswegen… kotz

von MaWin (Gast)


Lesenswert?

Textler schrieb:
> Mein bisheriges Vertrauen in 'file' und 'chardet' ist insbesondere was
> UTF-8 angeht nun aber arg erschuettert  :-(

VarianteB ist auch gültiges UTF-8. Und das ist was file und chardet 
erkennen.
Aber das Original B ist kein gültiger Text.
Das hat mit UTF nichts mehr zu tun.

von Georg (Gast)


Lesenswert?

Textler schrieb:
> Trotzdem sind sowohl 'file' wie auch 'chardet' der Meinung beides sei
> in UTF-8 codiert

Da die Programme den Text nicht "verstehen", können sie auch niemals 
beurteilen, ob da wo ein "ü" steht, egal wie codiert, auch ein "ü" 
hingehört.

Vielleicht soll es ja auch heissen "Mäßiggang ist aller Laster Anfang". 
Für einen Computer nicht erkennbar.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.