关于Ruby程序中的字符转码问题--- Chilkat解决方案介绍

在写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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值