railsのgemにwriteexcelがあります。
railsでexcelを作成しようというものです。
それで「テスト」みたいな半角カタカナをexcelに入力したかったので修正しました。
対象箇所はここです。
writeexcel-0.6.16/lib/writeexcel/helper.rb
def utf8_to_16be(utf8)
ruby_18 { NKF.nkf('-w16B0 -m0 -W', utf8) } ||
ruby_19 do
utf16be = NKF.nkf('-w16B0 -m0 -W', utf8)
utf16be.force_encoding('UTF-16BE')
end
end
private :utf8_to_16be
def utf8_to_16le(utf8)
ruby_18 { NKF.nkf('-w16L0 -m0 -W', utf8) } ||
ruby_19 do
utf16le = NKF.nkf('-w16L0 -m0 -W', utf8)
utf16le.force_encoding('UTF-16LE')
end
end
private :utf8_to_16le
NKFのオプションについて
-X を指定すると、 nkf は半角カタカナを自動的に全角カタカナに変換します。
-X はデフォルトで指定されているため、この動作を望まない場合は -x を指定してください。
http://jp.rubyist.net/magazine/?0009-BundledLibraries#l15
おぉ、なるほど。そういうことか。モンキーパッチ!?
def utf8_to_16be(utf8)
ruby_18 { NKF.nkf('-w16B0 -m0 -xW', utf8) } ||
ruby_19 do
utf16be = NKF.nkf('-w16B0 -m0 -xW', utf8)
utf16be.force_encoding('UTF-16BE')
end
end
private :utf8_to_16be
def utf8_to_16le(utf8)
ruby_18 { NKF.nkf('-w16L0 -m0 -xW', utf8) } ||
ruby_19 do
utf16le = NKF.nkf('-w16L0 -m0 -xW', utf8)
utf16le.force_encoding('UTF-16LE')
end
end
private :utf8_to_16le
0 件のコメント:
コメントを投稿