Den*_*rdy 7 ruby lisp python node.js
我正在寻找新的语言,对于我不再需要担心字符串问题,我在PHP中用于新项目的过多其他问题.
我倾向于发现Java太冗长和混乱,我不想用6英尺的杆子触摸Windows往往排除.Net.这基本上留下了其他所有东西 - 除了PHP,C和C++(我知道后两个与unicode的东西混乱,无论ICU库如何).
我简要列出了迄今为止的一些语言,即Ruby(喜欢mixins),Python,Lisp和Javascript(node.js).但是,我发现有关unicode 支持的高度不一致的 信息 ,我害怕(缺乏时间......)学习它们中的每一个,以至于我可以安全地破解它以排除它.
据我所知,Python 3 似乎拥有它.和Ruby 1.9一样.Lisp 不一定.大概是Javascript.
对于一种语言来说,可以说比unicode支持更多,但根据我的经验,它在处理语言环境时往往成为一个主要的缺点.
我也意识到这个问题有些主观.(请不要因为这个原因关闭它:我实际上是链接到我发现不满意的几个SO线程.)但是......作为这些语言的用户,它们在实践中如何支持unicode?
Python的unicode支持在3.x中没有真正改变.自Python 2.x以来,Python中的unicode 支持几乎相同,它引入了单独的unicode类型和编码处理.什么Python 3.x都有变化是unicode的成为唯一的字符串类型(并更名为str),而2.X有字节串(str,"...")和Unicode字符串(unicode,u"..."),经常但不总是不太搭配.(允许它们混合是尝试从字节串转换到unicode更容易,但结果是错误.)总而言之,Python的unicode支持相当不错,尽管Python 2.x中存在错误.有unicode文字和数字和命名转义,unicode文字中非ASCII字符的源编码声明,codecs模块自动编码/解码,许多库中的unicode支持(如正则表达式和DB-API模块)和内置unicode数据库.
也就是说,您仍需要了解编码才能正确处理文本.您的程序将以某种编码(无论是来自文件,来自环境变量还是通过其他输入)接收字节,并且需要以该编码进行解释.如果您不知道编码(并且无法从数据中确定它,如HTML或XML),您实际上只能将数据作为字节处理.如果您确实知道编码,Python确实允许您主要透明地处理它.
Perl对unicode有很好的支持.你需要知道如何正确使用,但我从来没有找到任何语言比perl更好的unicode支持,特别是现在使用perl5.14.
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |