我正在研究新的语言,有点渴望一种我不再需要担心字符集问题以及我在新项目中使用 PHP 遇到的大量其他问题的语言。
我倾向于认为 Java 过于冗长和混乱,而且我不想用 6 英尺长的杆子接触 Windows,因此倾向于排除 .Net。这就剩下了基本上所有的东西——除了 PHP、C 和 C++(我知道后两者会与 unicode 的东西搞混,不管 ICU 库如何)。
到目前为止,我已经列出了几种语言,即 Ruby(喜欢 mixins)、Python、Lisp 和 Javascript (node.js)。然而,我带着高度不一致的 https://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default 信息 https://stackoverflow.com/questions/1416215/which-programming-languages-were-designed-with-unicode-support-from-the-beginning on http://blog.grayproductions.net/articles/understanding_m17n unicode https://stackoverflow.com/questions/1036585/unicode-support-in-various-programming-languages support https://stackoverflow.com/questions/4149388/does-ruby-support-unicode-and-how-does-it-work我害怕(缺乏时间......)学习它们中的每一个,直到我可以安全地打破它以排除它。
据我所知,Python 3seems拥有它。 Ruby 1.9 也是如此。口齿不清不必要 http://www.cliki.net/Unicode%20and%20Lisp。大概是 JavaScript。
可以说,对一种语言的支持不仅仅是 unicode,但根据我的经验,它在处理语言环境时往往会成为一个主要缺点。
我也意识到这个问题有些主观。 (请不要因此关闭它:我实际上链接到了几个我觉得不满意的 SO 线程。)但是......作为任何这些语言的用户,它们在实践中对 unicode 的支持程度如何?
Python 的 unicode 支持在 3.x 中并没有真正改变。统一码support自 Python 2.x 以来,Python 中的内容几乎相同,Python 2.x 引入了单独的unicode
类型和编码处理。 Python 3.x 的变化是 unicode 成为唯一的字符串类型(并更名为str
),而 2.x 有字节串(str
, "..."
) 和 unicode 字符串 (unicode
, u"..."
)经常但并非总是不太混合。 (允许它们混合是为了使从字节串到 unicode 的转换更容易,但结果是一个错误。)总而言之,Python 的 unicode 支持非常好,尽管 Python 2.x 中存在错误。有带有数字和命名转义的 unicode 文字、unicode 文字中非 ASCII 字符的源编码声明、通过codecs
模块,许多库(如正则表达式和 DB-API 模块)中的 unicode 支持以及内置的 unicode 数据库。
也就是说,你still需要了解编码才能正确处理文本。您的程序将接收某种编码的字节(无论是来自文件、环境变量还是通过其他输入),并且它们需要以该编码进行解释。如果您不知道编码(并且无法从数据中确定编码,例如 HTML 或 XML),您实际上只能将数据作为字节进行处理。如果您确实知道编码,Python 确实允许您以透明的方式处理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)