如何将ISO8859-15转换成UTF8?

Hak*_*kim 39 linux bash text

我有一个ISO8859-15编码的阿拉伯文件.如何将其转换为UTF8?
我用过,iconv但它对我不起作用.

iconv -f ISO-8859-15 -t UTF-8 Myfile.txt
Run Code Online (Sandbox Code Playgroud)

我想附上文件,但我不知道如何.

Hig*_*ing 41

可能是你的文件没有ISO-8859-15编码?您应该能够使用file命令检查:

file YourFile.txt

此外,您可以使用iconv而不提供原始文件的编码:

iconv -t UTF-8 YourFile.txt

  • @ThorstenStaerk我不认为这样做.手册页说:"如果没有给出编码,则默认值来自当前语言环境的字符编码." 所以我相信HighKing关于不提供原始文件编码的评论是错误的. (4认同)

Col*_*nan 23

我发现这对我有用:

iconv -f ISO-8859-14 Agreement.txt -t UTF-8 -o agreement.txt
Run Code Online (Sandbox Code Playgroud)

  • 我通常见过 ISO-8859-1 (3认同)

小智 10

我有ubuntu 14和其他不适合我的答案

iconv -f ISO-8859-1 -t UTF-8 in.tex > out.tex
Run Code Online (Sandbox Code Playgroud)

我在这里找到了这个命令


小智 6

我遇到了同样的问题,但我在此页面找到了答案 !它对我有用,你可以尝试一下。

\n\n
iconv -f cp936 -t utf-8\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n


Cha*_*tos 5

我们有这个问题并要解决

创建一个名为 to-utf8.sh 的脚本文件

#!/bin/bash
TO="UTF-8"; FILE=$1
FROM=$(file -i $FILE | cut -d'=' -f2)
if [[ $FROM = "binary" ]]; then
 echo "Skipping binary $FILE..."
 exit 0
fi
iconv -f $FROM -t $TO -o $FILE.tmp $FILE; ERROR=$?
if [[ $ERROR -eq 0 ]]; then
  echo "Converting $FILE..."
  mv -f $FILE.tmp $FILE
else
  echo "Error on $FILE"
fi
Run Code Online (Sandbox Code Playgroud)

设置可执行位

chmod +x to-utf8.sh
Run Code Online (Sandbox Code Playgroud)

进行转换

./to-utf8.sh MyFile.txt
Run Code Online (Sandbox Code Playgroud)

如果要转换文件夹下的所有文件,请执行

find /your/folder/here | xargs -n 1 ./to-utf8.sh
Run Code Online (Sandbox Code Playgroud)

希望它有帮助。