每天一条Ruby小道之国际化

字符串和正则表达式与国际化关系紧密,utf-8可以让我们轻松搞定国际化问题
关于Unicode和utf-8入门,请看[url=http://hideto.iteye.com/blog/97803]深入了解字符集和编码[/url]

[b]
Internally, a string is just a series of bytes.
在系统内部,字符串只是一个字节序列。
[/b]

字符串本身不知道如何解析,它必须根据外部标准(编码)来决定如何解析。

一个字节不与一个字符一一对应。

Ruby有一个全局变量叫$KCODE,它有如下值:
a A ASCII
n N NONE (ASCII)
e E EUC
s S SJIS
u U UTF-8
默认情况下$KCODE的值为n,即ASCII编码,把字符串当成单字节序列来处理
我们想让Ruby使用utf-8来处理字符串和正则表达式的话,只需要将$KCODE设为u即可
另外Ruby自带了jcode库,我们require 'jcode'后,在$KCODE为"u"时可以使用String的jsize来得到中文字数

而Rails使用utf-8编码请参考[url=http://www.railscn.com/viewthread.php?tid=2521&extra=page%3D1]但愿这个帖子能终结所有rails中文问题[/url]
使用Gettext进行I18N和L10N则请参考[url=http://www.hhtong.com/blog1/articles/2006/05/15/rails20060514_i18n_gettext]使用工具gettext -- 将Rails框架应用软件中文化[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值