我正试图将txt文件从iso-8859-1转换为utf-8,这时我注意到一些包含瑞典字符的字符串没有正确解码。奇怪的是,当我转换回iso-8859-1时,文件仍然是utf-8,但这次字符串也被正确解码了。。。有人知道为什么会发生这种事吗?
iso-8859-1:中的字符串
≈kersberga
将文件转换为utf-8:
for file in ~/blabla/*
do
echo "${file}"
iconv -f iso-8859-1 -t UTF-8 "${file}" > "${file}.tmp"
rm "${file}"
mv "${file}.tmp" "${file}"
done
utf-8:中的字符串
…kersberga
再做一次,但被逆转:
for file in ~/blabla/*
do
echo "${file}"
iconv -f UTF-8 -t iso-8859-1"${file}" > "${file}.tmp"
rm "${file}"
mv "${file}.tmp" "${file}"
done
用file -b --mime-encoding
->该文件仍然是utf-8
但这次字符串也被正确解码:
Åkersberga
我认为问题出在iconv上,将libiconv升级到1.17解决了这个问题。