首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tr (ubuntu)和tr (mac)的编码差异

tr (ubuntu)和tr (mac)的编码差异
EN

Stack Overflow用户
提问于 2011-02-27 04:03:22
回答 1查看 255关注 0票数 1
代码语言:javascript
复制
echo – | tr ’ X

在我的mac上:正确打印-

在Ubuntu10.10上:打印XX�

为什么?

作为参考,第一个字符是'EN DASH‘(U+2013),第二个字符是’右单引号‘(U+2019)

编辑:我现在改用Perl。我使用的魔术咒语是:

代码语言:javascript
复制
perl -CSD -p -Mutf8 -e 'tr/A-ZÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛÇa-zäëïöüáéíóúàèìòùâèìòùñçßœ/ /cs'

它的意思是:除了我能想到的所有字母,用空格替换任何字符,并压缩空格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-27 04:29:55

GNU coreutils tr有多字节字符的问题-它将其视为单字节字符序列。

考虑到这一点,你在Linux上看到的东西是“预期的”:

代码语言:javascript
复制
$ echo – | od -t x1
0000000 e2 80 93 0a
0000004
$ echo ’ | od -t x1
0000000 e2 80 99 0a
0000004
$ echo – | tr ’ X | od -t x1
0000000 58 58 93 0a
0000004

编辑:

对于一组与UTF8兼容的实用程序,您可能希望查看一下Heirloom Toolchest。它包含一个明显支持UTF8的tr实现,尽管我还没有对其进行测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5129404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档