我使用的是 Mac Os X 10.5(但我在 10.4 上重现了该问题)
我正在尝试使用 iconv 将 UTF-8 文件转换为 ASCII
utf-8 文件包含“éàç”等字符
我希望将重音字符转换为最接近的 ASCII 等效字符
所以
我的命令是这样的:
iconv -f UTF-8 -t ASCII//TRANSLIT//忽略 myutf8file.txt
在 Linux 机器上运行良好
但是在我本地的 Mac Os X 上我得到了这个例子:
è => 'e
à => `a
我真的不明白为什么 iconv 在 mac os x 上返回这个奇怪的输出,但在 linux 上一切都很好
有什么帮助吗?或方向?
提前致谢
最佳答案
问题是 Mac OSX 使用另一个名为 libiconv 的 iconv 实现。大多数 Linux 发行版都有 iconv 的实现,它是 libc 的一部分。不幸的是,libiconv 将 ö、è 和 ñ 等字符音译为“o、`e 和 ~n”。解决此问题的唯一方法是下载源代码并修改 lib 目录中的 translit.h 文件。查找如下所示的行:
2、'"'、'o'、
并将它们替换为如下内容:
1,'o',
我在谷歌上花了几个小时试图找出这个问题的答案,最后决定下载源代码并解决它。希望这对某人有帮助!
关于macos - 如何解决 Mac OS X 上 iconv 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/806199/