Rails开发使用gb2312,gbk编码的hack方法

如果你需要在以下情况下使用gb2312,或者gbk编码,可以试下这个办法。也许可行。


1.rhtml,rb文件编码格式非utf8,采用gb2312,gbk编码
2.在ruby代码中需要输入中文字符串,并且某些特殊字会导致代码无法被正常解析。
3.数据库采用gb2312,或gbk编码


以上的情况下,最大的问题就是某些特殊中文字符,会使得代码解析出错。
[size=18][color=red]警告,这样的方式未经过大规模验证, 对于rails的其他部分的影响未知。请谨慎采用.[/color][/size]

解决方法
找到 C:\ruby\lib\ruby\1.8\xsd\charset.rb文件
找到下面的代码

[code] CharsetMap = {
'NONE' => 'us-ascii',
'EUC' => 'euc-jp',
'SJIS' => 'shift_jis',
'UTF8' => 'utf-8',
'X_ISO_8859_1' => 'iso-8859-1',
'X_UNKNOWN' => nil,
}
[/code]

修改为
[code] CharsetMap = {
'NONE' => 'gb2312',
'EUC' => 'euc-jp',
'SJIS' => 'shift_jis',
'UTF8' => 'utf-8',
'X_ISO_8859_1' => 'iso-8859-1',
'X_UNKNOWN' => nil,
}
[/code]
'NONE' => 'gb2312', [color=red]<----修改这里[/color]
保存文件。
确保你的系统的当前编码设置也是gb2312.
修改你的工程的编码格式
[code]$KCODE='n'[/code]
重新启动你的工程,这下会引起错误的特殊中文字符,就不会出现错误了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值