CGIKit2の文字コードの処理について(2)

[前回の続き。][1]

CGIKit 2.xでは、文字コードにUTF-8を推奨している。([CGIKit – 日本語処理][2])

しかし、ruby 1.8.2のKconvでは UTF-8 に変換できない。([るびま][3])

変換できないことを確認してみる。

require ‘kconv’

# UTF-8 で表された ‘Hello, るびま!’
str = “\x48\x65\x6c\x6c\x6f\x2c\x20\xe3\x82\x8b\xe3\x81\xb3\xe3\x81\xbe\xef\xbc\x81”

puts Kconv.guess(str) # => 6 == Kconv::UTF8 正しい
str = Kconv.kconv(str, Kconv::UTF8) # UTF-8をUTF-8に変換する
puts Kconv.guess(str) # => 1 == Kconv::JIS

# Shift_JIS で表された ‘Hello, るびま!
str = “\x48\x65\x6c\x6c\x6f\x2c\x20\x82\xe9\x82\xd1\x82\xdc\x81\x49”

puts Kconv.guess(str) # => 6 == Kconv::UTF8 正しい
str = Kconv.kconv(str, Kconv::UTF8) # Shift_JISをUTF-8に変換する
puts Kconv.guess(str) # => 1 == Kconv::JIS

対策としては、[るびま][3]にもあるように [修正されたkconv.rb][4] を使用するのがよさそう。

[修正されたkconv.rb][4] をlibディレクトリにコピーすれば、使えるようになる(はず)。

[1]: http://www.gesource.jp/weblog/archives/2005/09/cgikit2_2.html
[2]: http://cgikit.sourceforge.jp/cgi-bin/ja/index.cgi?%C6%FC%CB%DC%B8%EC%BD%E8%CD%FD
[3]: http://jp.rubyist.net/magazine/?0009-BundledLibraries#l13
[4]: http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ext/nkf/lib/kconv.rb?only_with_tag=ruby_1_8

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください