macos - 如何解决 Mac OS X 上 iconv 的奇怪问题

标签 macos shell iconv

我使用的是 Mac Os X 10.5(但我在 10.4 上重现了该问题)

我正在尝试使用 iconvUTF-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/

相关文章:

python - Mac Swampy(Python学习模块)安装

linux - 无法将程序与按双 Tab 键时的 Bash 总数相匹配

linux - iconv 任何编码为 UTF-8

encoding - 如何通过管道 tail -f 到 iconv 命令?

arrays - JSON 列表(不是对象)到 Bash 数组?

PHP iconv greek/cyrillic 音译不起作用

c# - 自托管 SignalR 跨平台 SSL/TLS

xcode - 类不被称为 Swift iOS

python - 使用单个 Python 脚本从 Linux、Mac 和 Windows 上的剪贴板复制数据

shell - 如果存在则从 ansible playbook 中删除