`
axgle
  • 浏览: 93651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用ruby实现简体中文和繁体中文的相互转化

阅读更多
根据php对简体繁体的转化原理编写而成,可以几行代码就实现ror站点的全部繁体化(或者简体化)
#功能:用ruby实现简体中文和繁体中文的相互转化
#作者:axgle 
#版本:1.0
#授权:GPL(无须经过作者同意即可修改代码,但修改后的代码必须按照GPL协议发布)
#日期:2006-11-25

class String
  
  def to_big5    
      iconv_chinese_by("to_big5.tab")
  end
  
  def to_gb2312
      iconv_chinese_by("to_gb2312.tab")
  end
  
  private
  def iconv_chinese_by(lang_table)
      lang_table=File.join(File.dirname(__FILE__),"lang_table",lang_table)    
      fp=File.open(lang_table,"rb")
      s=self  
      len=s.length-1
      i=0
      while(i<len)   
        c=s[i]
        if c>=160
          n=s[i+1]     
          if c==161 and n==64
            b="  "
          else                
            pos=(c - 160)*510 + (n - 1)*2        
            fp.seek(pos)
            b=fp.read(2)    
          end
          s[i]=b[0]      
          s[i+1]=b[1]  
          i+=1           
         end        
        i+=1     
      end
      fp.close
      return s    
  end
    
end
分享到:
评论
5 楼 healer_kx 2014-04-19  
。。。 。。。还有License
4 楼 pilipala 2006-12-06  
哦 不好意思,理解错了 呵呵

不过 iconv这个东西蛮不错,今天刚看到觉得很爽
就算顺便借光介绍一下喽
3 楼 qiezi 2006-12-06  
pilipala 写道
ruby的iconv库,已经实现了很好的编码转换功能,
如下例:

require 'iconv'
s = ARGV[0] || '汉字'
cov = Iconv.new( 'utf-8', 'gbk')
p cov.iconv(s)

iconv是编码转换,他说的是简繁转换。
2 楼 asalei 2006-12-06  
学习了!
1 楼 pilipala 2006-12-06  
ruby的iconv库,已经实现了很好的编码转换功能,
如下例:

require 'iconv'
s = ARGV[0] || '汉字'
cov = Iconv.new( 'utf-8', 'gbk')
p cov.iconv(s)

相关推荐

Global site tag (gtag.js) - Google Analytics