2012-01-16 132 views
0

我必须从许多文件(许多cpp文件!)中删除Unicode字符,我正在寻找脚本或其他东西来删除这些unicode。这些文件在许多文件夹中!如何将unicode转换为ASCII?

+2

“删除”是什么意思?从字面上删除它们并使内容变得毫无意义?或者尝试一下,例如,用e替换é这样的字符? – 2012-01-16 13:34:23

+5

@DavidM:'e'也是一个Unicode字符。 – 2012-01-16 13:35:24

+2

@Kerrek SB - 是的,我知道 - 但我们都知道他的意思... – 2012-01-16 13:37:09

回答

4

如果你有它,你应该可以使用iconv(命令行工具,而不是C函数)。事情是这样的:

$ for a in $(find . -name '*.cpp') ; do iconv -f utf-8 -t ascii -c "$a" > "$a.ascii" ; done 

-c选项iconv使其放弃它不能转换的字符。然后你会验证结果,并再次仔细检查它们,重命名“.ascii”文件到平原文件名,覆盖Unicode输入文件:

$ for a in $(find . -name '*.ascii') ; do mv $a $(basename $a .ascii) ; done 

注意,这两个命令是未经考验;通过在do之后加入echo来验证它们是否合理。

+0

你有什么可以在mac os x上运行吗? – kasavbere 2013-01-23 01:27:57

0

打开Gaupol中的srt文件,单击文件,单击保存为,删除菜单中的字符编码,选择UTF-8,保存文件。