好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

iconv编码转换

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的。 

查看更多关于iconv编码转换的详细内容...

  阅读:36次