我的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=
我无法弄明白为什么。任何帮助表示感谢,谢谢。
答案 0 :(得分:0)
Iso-8895-1,iso-8895-15和Windows-1252(CodePage1252)字符集非常相似,只是少数字符和/或位置不同。例如,iso-8895-1没有欧元(€)符号。 Windows-1252和-15可以,但它映射到不同的字节。
file
使用“魔术”查找来猜测编码。如果文本中不存在使这些字符集不同的字符,则file
无法区分这三者。
听起来你肯定有一些非ASCII拉丁字符,但不足以让file
知道任何差异。
您可以轻松休息 - 您的文件与Windows-1252编码兼容。