论坛首页 编程语言技术论坛

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

浏览 6925 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-25  
根据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 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics