From: gotoken@... (GOTO Kentaro) Date: 1999-07-19T21:44:34+09:00 Subject: [ruby-list:15539] Re: 半 to 全 ごとけんです In message "[ruby-list:15536] Re: 半 to 全" on 99/07/19, Kenji Horikoshi writes: >> 出沢です >> >> 半角片仮名を全角平仮名に替えるやつってありそうで >> みつからない、、、 >> どなたか作ってませんか? > >って,よくみたら,半角カナ→全角平仮名ですか。 >早とちりでした。^^; あ、ほんとだ ^^;; じゃあ kakasi -kH ですね (もういいって > 俺) -- gotoken class String require "kconv" def hankakukana_to_zenkakukana(code = nil) code = Kconv::guess(self) unless code tmp = Kconv::kconv(self,Kconv::SJIS,code) tmp = Kconv::kconv(tmp,Kconv::EUC,Kconv::SJIS) Kconv::kconv(tmp,code,Kconv::EUC) end ### Assume that self is EUC coded! ### def to_zenkaku_hiragana split('').collect { |c| c[0] = 0xa4 if c.size == 2 && c[0] == 0xa5 c }.join('') end def to_zenkaku_katakana split('').collect { |c| c[0] = 0xa5 if c.size == 2 && c[0] == 0xa4 c }.join('') end def swap_kana split('').collect { |c| if c.size == 2 && c[0] == 0xa4 c[0] = 0xa5 elsif c.size == 2 && c[0] == 0xa5 c[0] = 0xa4 end c }.join('') end end if __FILE__ == $0 require "kconv" zact = "\x8e\xd4\x8e\xc6\xa4\xf2\xbc\xe8\xa4\xeb" puts "# May your terminal display EUC characters..." puts zact puts zact = Kconv::toeuc(zact.hankakukana_to_zenkakukana) puts zact.to_zenkaku_hiragana puts zact.to_zenkaku_katakana puts zact.swap_kana end