iconv编码转换
iconv -c -f latin1 -t utf-8 doc/ddd.txt > doc/new.txt
http://www.javaeye.com/topic/240133
http://www.javaeye.com/topic/565606
ruby也有utf-8编码问题
http://www.javaeye.com/topic/369753
用ruby实现简体中文和繁体中文的相互转化
2009 - 03 - 17
Rails 中的乱码问题解决 关键字: set_charset
Ruby代码
before_filter :set_charset def set_charset if request.xhr? header[ 'Content-Type' ]= "text/javascript,charset=utf-8" else header[ 'Content-Type' ]= "text/html,charset=utf-8" end suppress(ActiveRecord::StatementInvalid) do ActiveRecord::Base.connection.execute 'SET NAMES UTF8' end end如果,你遇到了上面的错误提示,
那么,说明你的Rails版本升级了,设置编码的描述改变了,请点击这里
Rails中文显示乱码的描述改变
以上的设置分布对应于html javascript mysql同时还要注意
文件编辑保存时的编码也需要统一为utf8(建议在编辑器中直接设置为utf8,注意有不少编辑器默认跟操作系统默认编码走,比如xp的默认编码是gbk,而不是utf8,这一点需要特别注意)
数据库的默认编码也需要统一为utf8,默认的latin1_swedish_ci也可能会引起乱码问题
下面还有 night_stalker 回答问题的部分
将字符串编码改成系统编码(中文windows控制台一般是GB2312或者GBK)
在ruby 1.8,用iconv:
Ruby代码
require 'iconv' p Iconv.conv( 'gbk' , 'utf-8' ,item[ :name ])) require 'iconv' p Iconv.conv( 'gbk' , 'utf-8' ,item[ :name ]))在ruby 1.9,用encoding:
Ruby代码
p item[ :name ].encode(Encoding.default_external) p item[ :name ].encode(Encoding.default_external)如果嫌每次都转码不方便,可以
Ruby代码
require 'iconv' def echo something if something. nil ? p nil else p Iconv.conv( 'gbk' , 'utf-8' ,something.to_s) end end require 'iconv' def echo something if something. nil ? p nil else p Iconv.conv( 'gbk' , 'utf-8' ,something.to_s) end end以后就用echo输出编码为utf-8的。
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did43441