论坛首页 Ruby版 ruby

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

浏览 3199 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2006-11-26
根据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
   
最后更新时间:2006-12-06
ruby的iconv库,已经实现了很好的编码转换功能,
如下例:

require 'iconv'
s = ARGV[0] || '汉字'
cov = Iconv.new( 'utf-8', 'gbk')
p cov.iconv(s)
   
0 请登录后投票
最后更新时间:2006-12-06
学习了!
   
0 请登录后投票
最后更新时间:2006-12-06
pilipala 写道
ruby的iconv库,已经实现了很好的编码转换功能,
如下例:

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

iconv是编码转换,他说的是简繁转换。
   
0 请登录后投票
最后更新时间:2006-12-06
哦 不好意思,理解错了 呵呵

不过 iconv这个东西蛮不错,今天刚看到觉得很爽
就算顺便借光介绍一下喽
   
0 请登录后投票
论坛首页 Ruby版 ruby

跳转论坛:
JavaEye推荐