2016-10-09 10 views
0

Ich habe eine Big5-codierte Datei, die von Mac TextEdit nicht geöffnet werden kann. Ich frage mich, wie man die ganze Datei in utf8-Codierung umwandeln kann, da utf8 viel universeller und gebräuchlicher ist.Wie konvertiert man eine Big5-codierte TXT-Datei in eine UTF8-codierte TXT-Datei?

Ich habe versucht, iconv in meinem Terminal, aber es funktioniert nicht. Ich kann auch nichts über diesen Fehler von Google finden.

$ iconv -f BIG5 -t UTF8 in.txt > out.txt 
iconv: in.txt:5:0: cannot convert 

Gibt es noch andere Möglichkeiten zum Konvertieren?

Ich habe die TXT-Datei von here, whcih ist eine Liste der chinesischen Namen in Taiwan Traditional Chinese.

Antwort

1

Wenn Sie die ersten 20 Zeilen Ihrer Datei betrachten, ist es klar, dass die Codierung das Byte 0x8C als erstes Byte einiger Multibyte-Sequenzen verwendet. Die Codierungen, die diese Eigenschaft haben, sind:

  • BIG5
  • BIG5-HKSCS
  • CP932
  • CP936
  • CP949
  • CP950
  • GB18030
  • GBK
  • Johab
  • Shift_JIS
  • Shift_JISX0213

sie wiederum Versuchen:

$ for encoding in BIG5 BIG5-HKSCS CP932 CP936 CP949 CP950 GB18030 GBK \ 
        JOHAB Shift_JIS Shift_JISX0213; do \ 
    if head -n 20 < unique_names_2012.txt | iconv -f $encoding -t UTF-8 > /dev/null 2> /dev/null; then \ 
    echo $encoding ; \ 
    fi; \ 
done 

Mit GNU libiconv, druckt es

BIG5-HKSCS 
CP950 
GB18030 

Ist es in GB18030 Codierung?

$ iconv -f GB18030 < unique_names_2012.txt 

zeigt Hunderte von Zeilen, die Zeichen im PUA-Bereich verwenden. Obwohl nicht unmöglich, scheint es unwahrscheinlich.

Ist es in CP950-Codierung?

$ iconv -f CP950 < unique_names_2012.txt 

gibt einen Konvertierungsfehler in Zeile 2294.

es in BIG5-HKSCS Codierung ist?

$ iconv -f BIG5-HKSCS < unique_names_2012.txt 

gibt einen Konvertierungsfehler in Zeile 713.

also höchstwahrscheinlich die Datei in einer Variante von BIG5 codiert wird. Es gibt viele solcher Varianten, siehe http://haible.de/bruno/charsets/conversion-tables/Chinese.html. Möglicherweise ist es eine Erweiterung von CP950 oder eine Erweiterung von BIG5-HKSCS (da dies die beliebtesten Codierungen aus der BIG5 Familie heute sind).

Zusammenfassend werden solche Konvertierungsfehler durch unstandardisierte Proliferation von BIG5-Varianten verursacht.

Das Beste, was Sie tun können, ist, die ursprüngliche Datei in UTF-8-Codierung anzufordern; lass den Urheber damit umgehen.

+0

Danke, es hilft wirklich sehr! –

Verwandte Themen