Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos osx:一种新手友好的方法,可以将各种编码的5k txt文件转换为utf8编码的txt文件_Macos_Shell_Unicode_Character Encoding - Fatal编程技术网

Macos osx:一种新手友好的方法,可以将各种编码的5k txt文件转换为utf8编码的txt文件

Macos osx:一种新手友好的方法,可以将各种编码的5k txt文件转换为utf8编码的txt文件,macos,shell,unicode,character-encoding,Macos,Shell,Unicode,Character Encoding,我正在切换到emacs,作为所有纯文本文件的编辑器(我使用OSX),并且似乎用记事本和textedit保存的旧txt文件(在utf-8以外的其他编码中)在某些字符应该出现的地方都有丑陋的“/some_number”。是否有任何合理的简单方法可以将分布在主文件夹中的5k TXT转换为utf-8?(假设我从主目录中所有txt文件的路径开始。下一步是什么?您可以使用iconv转换这些文件。假设您使用了拉丁1编码,您可以 IFS=$'\n' for i in `find . -name \*.txt`;

我正在切换到emacs,作为所有纯文本文件的编辑器(我使用OSX),并且似乎用记事本和textedit保存的旧txt文件(在utf-8以外的其他编码中)在某些字符应该出现的地方都有丑陋的“/some_number”。是否有任何合理的简单方法可以将分布在主文件夹中的5k TXT转换为utf-8?(假设我从主目录中所有txt文件的路径开始。下一步是什么?

您可以使用
iconv
转换这些文件。假设您使用了拉丁1编码,您可以

IFS=$'\n'
for i in `find . -name \*.txt`; do
   iconv -f latin1 -t utf8 "$i" > "$i.utf8" && mv "$i.utf8" "$i"
done

但是,如果txt列表包含各种编码的txt(一些来自win notepad,一些来自拉丁语,一些来自中文)会怎么样?那么,在这种情况下,您必须定义每个文件的编码。无法从文件本身判断。有一些启发式方法可以尝试猜测(比如
文件
可以),但它本质上是不可靠的。另一个选项是跳过
mv
步骤,为每个编码创建一个文件,然后只选择需要的文件。