我是靠谱客的博主 可耐玫瑰,最近开发中收集的这篇文章主要介绍ROR中unicode的处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在ROR处理中文时遇到了一些问题,打算探索一下,今天先转一篇文章。

 

下面说的不是一个完整的答案,但我已经尽力啦。如果你真的想要解决这个问题,可以阅读一下Julian Tarkhanov’sUNICODE_PRIMER 。

※※※ Onigurama ※※※
首先,Onigurama (一个正则表达式引擎,ruby1.9开始采用)支持Unicode,也支持许多encoding,很好用,如果你只是想用搜索一下字符串,OK,就是它了。(按:不知道如何使用啊。。。)

※※※ jcode类库 ※※※
Ruby的String类是不区分unicode的. 有个叫做jcode的库,很简单,比如你只是想数一下一个UTF-8字符串中有多少个字符,或者遍历这些字符。

※※※ /./u 正则表达式 ※※※
Ruby本身也有一些处理UTF-8(使用正则表达式)的能力:使用’u'作为修饰。许多人hack UTF-8的主要方法就是str.scan(/./u),这样就返回了一个字符串数组,里面每个字符串中的若干字节代表一个UTF-8字 符。(另:str.unpack(’U*’))

※※※ unicode_hacks ※※※
如果你想在Rails里面用Unicode字符串,可以使用Julian的unicode_hacks插件 ,他们在irc.freenode.net上有个专门的channel:#multibyte_rails
unicode_hacks 插件很有想法,它会在使用str.unpack(’U*’)之前先尝试用下面这些扩展来做(按优先级顺序排列):
    1. icu4r : IBM ICU库的Ruby扩展,添加了诸如UString, URegexp等类来处理Unicode。(文档链接 )
    2. utf8proc : 一个很小型的库,便利字符串中的的字符然后一个个转过去,给String类和Interger类添加了了一些方法,比如String#utf8map和Integer#utf8。
    3. Unicode类: Yoshida Masato 做的一个扩展,提供`strcmp`, `[de]compose`, normalization 和大小写转换等功能。

看起来很多选择,很丰富,但是大都只实现了部分功能,而且都只刚刚开始,还不成熟。

※※※ Ruby-Character-Encoding ※※※
最近刚刚个东东加入了这场Unicode竞争:Nikolai Weibull的ruby-character-encoding库 , 意图在Ruby 1.8的string类上添加功能解决Matz想要在Ruby2.0才给于解决的Unicode问题(按:Ruby1.9 2007年年底才出,Ruby2.0等到哪辈子?),但是如果你使用这个类,就有可能导致其他使用标准string类的库崩溃。不过,在Nikolai的 努力下,这个库倒有希望完美的解决Unicode问题 。有个邮件列表专门讨论这个 。

最后

以上就是可耐玫瑰为你收集整理的ROR中unicode的处理的全部内容,希望文章能够帮你解决ROR中unicode的处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部