如何将Big5编码的txt文件转换为UTF8编码的txt文件?
How to convert a Big5 encoded txt file to UTF8 encoded txt file?
我有一个 Big5 编码的文件,无法用 Mac TextEdit 打开。我想知道如何将整个文件转换成utf8编码,因为utf8更加通用和通用。
我试过在我的终端中使用 iconv,但它不起作用。 Google 我也找不到关于此错误的任何有用信息。
$ iconv -f BIG5 -t UTF8 in.txt > out.txt
iconv: in.txt:5:0: cannot convert
还有其他转换方式吗?
我从here那里得到了txt文件,里面是台湾繁体中文的中文名字列表。
查看文件的前 20 行,很明显编码使用字节 0x8C 作为某些多字节序列的第一个字节。具有此 属性 的编码是:
- BIG5
- BIG5-HKSCS
- CP932
- CP936
- CP949
- CP950
- GB18030
- GBK
- 约哈布
- Shift_JIS
- Shift_JISX0213
依次尝试:
$ 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
使用 GNU libiconv,它打印
BIG5-HKSCS
CP950
GB18030
是GB18030编码吗?
$ iconv -f GB18030 < unique_names_2012.txt
显示数百行使用了 PUA 范围内的字符。虽然并非不可能,但似乎不太可能。
是CP950编码吗?
$ iconv -f CP950 < unique_names_2012.txt
在第 2294 行给出转换错误。
是BIG5-HKSCS编码吗?
$ iconv -f BIG5-HKSCS < unique_names_2012.txt
在第 713 行给出转换错误。
因此,很可能该文件是以 BIG5 的变体编码的。有许多这样的变体,请参阅 http://haible.de/bruno/charsets/conversion-tables/Chinese.html。可能是 CP950 的扩展或 BIG5-HKSCS 的扩展(因为这些是当今 BIG5 家族中最流行的编码)。
总之,此类转换错误是由于 未标准化 BIG5 变体的扩散造成的。
你能做的最好的事情就是请求 UTF-8 编码的原始文件;让始作俑者处理。
我有一个 Big5 编码的文件,无法用 Mac TextEdit 打开。我想知道如何将整个文件转换成utf8编码,因为utf8更加通用和通用。
我试过在我的终端中使用 iconv,但它不起作用。 Google 我也找不到关于此错误的任何有用信息。
$ iconv -f BIG5 -t UTF8 in.txt > out.txt
iconv: in.txt:5:0: cannot convert
还有其他转换方式吗?
我从here那里得到了txt文件,里面是台湾繁体中文的中文名字列表。
查看文件的前 20 行,很明显编码使用字节 0x8C 作为某些多字节序列的第一个字节。具有此 属性 的编码是:
- BIG5
- BIG5-HKSCS
- CP932
- CP936
- CP949
- CP950
- GB18030
- GBK
- 约哈布
- Shift_JIS
- Shift_JISX0213
依次尝试:
$ 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
使用 GNU libiconv,它打印
BIG5-HKSCS
CP950
GB18030
是GB18030编码吗?
$ iconv -f GB18030 < unique_names_2012.txt
显示数百行使用了 PUA 范围内的字符。虽然并非不可能,但似乎不太可能。
是CP950编码吗?
$ iconv -f CP950 < unique_names_2012.txt
在第 2294 行给出转换错误。
是BIG5-HKSCS编码吗?
$ iconv -f BIG5-HKSCS < unique_names_2012.txt
在第 713 行给出转换错误。
因此,很可能该文件是以 BIG5 的变体编码的。有许多这样的变体,请参阅 http://haible.de/bruno/charsets/conversion-tables/Chinese.html。可能是 CP950 的扩展或 BIG5-HKSCS 的扩展(因为这些是当今 BIG5 家族中最流行的编码)。
总之,此类转换错误是由于 未标准化 BIG5 变体的扩散造成的。
你能做的最好的事情就是请求 UTF-8 编码的原始文件;让始作俑者处理。