在写Ruby程序的时候,经常遇到字符转码的情况,如: 将GB2312的字符转为UTF-8; 或者在将EXCEL数据导入到程序的时候,会将Windows默认的ANSCII编码转换为UTF-8 .
程序支持的编码方式有很多,不过为了更好的国际化,尽量选择一致用UTF-8 .
最近在将EXCEL数据通过程序导入到MYSQL的时候,遇到了字符编码的错误,如果不通过转码,会报MYSQL错误:
Mysql::error....\3bsdf\fsdf\bsdfsd
然后搜索网络解决方案,更多的是谈到Iconv的用法,不过在将Iconv引入程序,通过Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE",text)等形式进行转码的时候,老是报错,如:Iconv::IllegalSequence ...等等
偶然机会,找到了个更好的解决方案: chilkat ( http://www.chilkatsoft.com/)
下载文件包 http://www.chilkatsoft.com/ruby.asp
将chilkat.dll文件复制到/railsapp/lib/目录下即可在需要的地方引用了.
如: 我想将ANSI格式字符转换为UTF-8编码格式,其方法如下:
#format from students.xlsx to db
def format_str(str)
str = str.gsub(/ /,'').chomp.strip
myStr = Chilkat::CkString.new()
myStr.appendAnsi(str)
str = myStr.getEnc("utf-8")
return str
end
程序支持的编码方式有很多,不过为了更好的国际化,尽量选择一致用UTF-8 .
最近在将EXCEL数据通过程序导入到MYSQL的时候,遇到了字符编码的错误,如果不通过转码,会报MYSQL错误:
Mysql::error....\3bsdf\fsdf\bsdfsd
然后搜索网络解决方案,更多的是谈到Iconv的用法,不过在将Iconv引入程序,通过Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE",text)等形式进行转码的时候,老是报错,如:Iconv::IllegalSequence ...等等
偶然机会,找到了个更好的解决方案: chilkat ( http://www.chilkatsoft.com/)
下载文件包 http://www.chilkatsoft.com/ruby.asp
将chilkat.dll文件复制到/railsapp/lib/目录下即可在需要的地方引用了.
如: 我想将ANSI格式字符转换为UTF-8编码格式,其方法如下:
#format from students.xlsx to db
def format_str(str)
str = str.gsub(/ /,'').chomp.strip
myStr = Chilkat::CkString.new()
myStr.appendAnsi(str)
str = myStr.getEnc("utf-8")
return str
end