Symbole gehen nach der Konvertierung von UTF-8 nach ISO8859-1 und zurück in UTF-8 verloren

392
Volodymyr Bezuglyy

Ich habe eine Datei mit Eigenschaften auf Französisch.
Ich möchte es nach ISO8859-1 konvertieren.
Nach der Konvertierung gehen jedoch einige Symbole verloren.
Was ist falsch?

> cat fr.properties VAR2="élément n’a" > cat fr.properties | iconv -f UTF-8 -t ISO8859-1 | iconv -f ISO8859-1 -t UTF-8 VAR2="élément na" 
0

1 Antwort auf die Frage

1
Michael Kohne

Ist dieses Zeichen in der ISO8859-1-Kodierung vorhanden? Ich glaube es nicht. Was macht dieses erwartete Verhalten.

Um klar zu sein: Die Ausgabe von iconv iconv -f UTF-8 -t ISO8859-1muss vollständig in der ISO8859-1-Kodierung sein. Es kann ALLES in UTF-8 nicht verlassen. Wenn der Eingabetext ein Zeichen enthält, das nicht in ISO8859-1 dargestellt werden kann, wird es von iconv gelöscht.

Wenn Sie dann zurückkonvertieren, kann der iconv -f ISO8859-1 -t UTF-8Befehl niemals wissen, dass das fehlende Zeichen vorhanden war, sodass Sie es nicht am anderen Ende erhalten.