在iso-8859-1中重新编码utf8..cp1250结果

时间:2016-01-28 08:29:15

标签: shell encoding utf-8

我的CSV文件似乎在UTF-8中正确编码。

   iconv -f UTF-8 file.csv -o /dev/null  # returns 0

当我尝试将文件重新编码为cp1250(尝试重新编码/ iconv甚至Perl)时,生成的文件以iso-8859-1编码 - 至少根据

   file -i resulting_file.csv
   resulting_file.csv: text/plain; charset=iso-8859-1

服务器上的区域设置是

   LANG=en_US.UTF-8
   LC_CTYPE="en_US.UTF-8"
   LC_NUMERIC="en_US.UTF-8"
   LC_TIME="en_US.UTF-8"
   LC_COLLATE="en_US.UTF-8"
   LC_MONETARY="en_US.UTF-8"
   LC_MESSAGES="en_US.UTF-8"
   LC_PAPER="en_US.UTF-8"
   LC_NAME="en_US.UTF-8"
   LC_ADDRESS="en_US.UTF-8"
   LC_TELEPHONE="en_US.UTF-8"
   LC_MEASUREMENT="en_US.UTF-8"
   LC_IDENTIFICATION="en_US.UTF-8"
   LC_ALL=

我无法弄明白为什么。任何帮助表示感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

Iso-8895-1,iso-8895-15和Windows-1252(CodePage1252)字符集非常相似,只是少数字符和/或位置不同。例如,iso-8895-1没有欧元(€)符号。 Windows-1252和-15可以,但它映射到不同的字节。

file使用“魔术”查找来猜测编码。如果文本中不存在使这些字符集不同的字符,则file无法区分这三者。

听起来你肯定有一些非ASCII拉丁字符,但不足以让file知道任何差异。

您可以轻松休息 - 您的文件与Windows-1252编码兼容。