Jay*_*ong 1 encoding utf-8 iconv big5
我有一个Big5编码文件,Mac TextEdit无法打开.我想知道如何将整个文件转换为utf8编码,因为utf8更加通用和普遍.
我已尝试在终端中使用iconv,但它不起作用.我也找不到任何有关此错误的信息.
$ iconv -f BIG5 -t UTF8 in.txt > out.txt
iconv: in.txt:5:0: cannot convert
Run Code Online (Sandbox Code Playgroud)
还有其他转换方式吗?
查看文件的前20行,很明显编码使用字节0x8C作为某些多字节序列的第一个字节.具有此属性的编码为:
依次尝试:
$ 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
Run Code Online (Sandbox Code Playgroud)
使用GNU libiconv,它会打印出来
BIG5-HKSCS
CP950
GB18030
Run Code Online (Sandbox Code Playgroud)
是GB18030编码吗?
$ iconv -f GB18030 < unique_names_2012.txt
Run Code Online (Sandbox Code Playgroud)
显示数百行使用PUA范围内的字符.虽然并非不可能,但似乎不太可能.
是CP950编码吗?
$ iconv -f CP950 < unique_names_2012.txt
Run Code Online (Sandbox Code Playgroud)
在第2294行给出转换错误.
它是用BIG5-HKSCS编码的吗?
$ iconv -f BIG5-HKSCS < unique_names_2012.txt
Run Code Online (Sandbox Code Playgroud)
在第713行给出转换错误.
因此,很可能该文件是以BIG5的变体编码的.有许多这样的变体,请参阅http://haible.de/bruno/charsets/conversion-tables/Chinese.html.可能它是CP950的扩展或BIG5-HKSCS的扩展(因为这些是今天BIG5系列中最流行的编码).
总之,这种转换错误是由BIG5变体的非标准化增殖引起的.
您可以做的最好的事情是以UTF-8编码请求原始文件; 让发端人处理它.
| 归档时间: |
|
| 查看次数: |
3111 次 |
| 最近记录: |