rubyで文字コードを変更する時に半角カタカナをそのままにする方法
shift jisに変換する場合を考える。
require 'kconv'
aaa = "テスト文字" #半角カタカナ
aaa_tosjis = aaa.tosjis # Shift_JISに変換
p(aaa_tosjis)
----------
実行
----------
テスト文字
----------
kconvだと半角カタカナが全角カタカナになる。
require 'nkf'
aaa = "テスト文字"
aaa_nkf = NKF.nkf('-sx', aaa) # sはShift_JIS、xは半角全角変換を無効にする
p(aaa_nkf)
----------
実行
----------
テスト文字
----------
#例
require 'kconv'
require 'nkf'
aaa = "テスト文字"
aaa_tosjis = aaa.tosjis # Shift_JISに変換
p(aaa_tosjis)
aaa_nkf = NKF.nkf('-sx', aaa) # sはShift_JIS、xは半角全角変換を無効にする
p(aaa_nkf)
file_out = File.open("out.txt","a")
file_out.write(aaa_tosjis + "\n")
file_out.write(aaa_nkf + "\n")
file_out.close
----------
実際の実行結果(Windowsコマンドプロンプト)
----------
"テスト文字"
"\303\275\304文字"
----------
----------
out.txt
----------
テスト文字
テスト文字
----------
このように半角カタカナをそのままにしたいときはnkfを用いる。
参考
rubyistmagazine ad

zzz ~雑記~
鋼材(コイル・フープ・板)の加工・販売サイト「テツコ」 全国対応
[0回]