对从iso-8859-1到utf-8的iconv转换感到困惑



我正试图将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解决了这个问题。

最新更新