iconv unicode-unknown input format
Ich habe eine Datei, in der beschrieben wird unter Unix wie:
$file xxx.csv
xxx.csv: UTF-8 Unicode text, with very long lines
Betrachten in less
/vi
machen wird, werden einige Sonderzeichen (ßÄ°...) unlesbar (├╝); unter Windows wird auch nicht angezeigt wird, importieren Sie ihn direkt in der db ändern Sie einfach die Sonderzeichen einige Sonderzeichen (+ä, +ñ, ...).
Wollte ich konvertieren es jetzt eine "Standard-lesbar" encoding mit iconv.
Wenn ich versuche es zu konvertieren mit iconv
$iconv -f UTF-8 -t ISO-8859-1 xxx.csv > yyy.csv
iconv: illegal input sequence at position 1234
Verwendung von UNICODE als Eingabe-und UTF-8 als Ausgabe wird wieder die gleiche Meldung
Ich vermute, die Datei ist etwas kodiert, die in einem anderen format, die ich nicht kenne - wie kann ich herausfinden, welches format um zu konvertieren, um etwas "universell" lesbares ...
- Versuchen Sie es zu öffnen in einem text-editor, mit dem Sie die Kodierung ändern mit was die Datei zu öffnen. Schlimmsten Fall, die ein browser nicht so gut. Dann spielen, um mit den verfügbaren Kodierungen und sehen, was zeigt Zeichen korrekt.
- Ich habe versucht mit notepad++, aber es ist 680MB und notepad++ sagt mir, es ist zu groß ..
- Die Datei ist offensichtlich nicht UTF-8, auch wenn
file
haben es erraten. Können Sie uns zeigen, die acht bytes beginnend bei offset 1234, in deren hexdump form? - Wie soll ich das tun? Btw, öffnete ich es auf meinem mac mit bbedit öffnet es correcly gemacht, wie unicode utf-8 ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertierung von UTF-8 auf ISO-8859-1 funktioniert nur, wenn Ihre UTF-8-text nur Zeichen, die dargestellt werden können, die in ISO-8859-1. Wenn dies nicht der Fall ist, sollten Sie angeben, was geschehen muss, um diese Zeichen, entweder ignorieren (//IGNORE) oder approximation (//TRANSLIT) Sie. Versuchen Sie, eine von diesen beiden:
In den meisten Fällen, ich denke Näherung ist die beste Lösung, mapping, z.B. Zeichen mit Akzenten, um Ihre unbetont Kollegen, das euro-Zeichen EUR, etc...
War das problem, dass Windows konnte nicht interpretieren, die Datei als UTF-8 auf sich selbst. er liest es als asci und dann ä wird mit 2 Zeichen-Deutung ä (ascii-195 164)
versuchen, es zu konvertieren, ich habe eine Lösung gefunden, die funktioniert für mich:
nun ich kann die Sonderzeichen korrekt in den Editoren
For SQL Server Kompatibilität, Konvertierung von UTF-8 in UTF-16 wird sogar noch besser funktionieren ... nur die Dateigröße wächst ganz ein bisschen
Wenn Sie nicht sicher sind über die Datei-Typ Sie im Umgang mit dann findest du es wie folgt,
Den oben genannten Befehl geben Sie die Datei-format. Dann iconv können entsprechend genutzt werden.
Zum Beispiel, wenn die Datei-format ist UTF-16 und Sie wollen es zu konvertieren, um UTF-8 dann folgenden verwendet werden kann.
Hoffnung gibt das add-on Einblick auf das, was Sie suchen.