浏览 6372 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-10
1.rhtml,rb文件编码格式非utf8,采用gb2312,gbk编码 2.在ruby代码中需要输入中文字符串,并且某些特殊字会导致代码无法被正常解析。 3.数据库采用gb2312,或gbk编码 以上的情况下,最大的问题就是某些特殊中文字符,会使得代码解析出错。 警告,这样的方式未经过大规模验证, 对于rails的其他部分的影响未知。请谨慎采用. 解决方法 找到 C:\ruby\lib\ruby\1.8\xsd\charset.rb文件 找到下面的代码 CharsetMap = { 'NONE' => 'us-ascii', 'EUC' => 'euc-jp', 'SJIS' => 'shift_jis', 'UTF8' => 'utf-8', 'X_ISO_8859_1' => 'iso-8859-1', 'X_UNKNOWN' => nil, } 修改为 CharsetMap = { 'NONE' => 'gb2312', 'EUC' => 'euc-jp', 'SJIS' => 'shift_jis', 'UTF8' => 'utf-8', 'X_ISO_8859_1' => 'iso-8859-1', 'X_UNKNOWN' => nil, } 'NONE' => 'gb2312', <----修改这里 保存文件。 确保你的系统的当前编码设置也是gb2312. 修改你的工程的编码格式 $KCODE='n' 重新启动你的工程,这下会引起错误的特殊中文字符,就不会出现错误了. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-10
我试了,不知道为什么,不起作用?
我在页面中加入了“删除”字符就会出错,换为“其它”就没事。 |
|
返回顶楼 | |
发表时间:2007-02-10
oksonic 写道 我试了,不知道为什么,不起作用?
我在页面中加入了“删除”字符就会出错,换为“其它”就没事。 要确保$KCODE是'n'才行. 有些额外的库会修改 $KCODE的值 对了 这个我只在windows平台做了小规模测试. |
|
返回顶楼 | |
发表时间:2007-07-26
我改了一下,可以用的
平台是 windows,感谢楼主分享。 历史遗留数据库是gb2312的,没办法,想用utf-8也不行啊。 |
|
返回顶楼 | |
发表时间:2007-07-27
数据库的编码问题可以通过导出为 SQL 文件转换编码后再导入来解决吧?
|
|
返回顶楼 | |
发表时间:2007-08-02
历史遗留的系统还在使用,不能说改就改的啊
|
|
返回顶楼 | |