あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

cygwin1.7x対応

HDDが逝ってしまいOSから何からインストールする羽目になったわけですが、cygwinが大幅アップデートされており、以前のrubyプログラムが上手く動かなくなってしまいました。
調べたところ、文字コードUTF-8になっているそうです。なので対応としては

$KCODE = "UTF8"

としておけば概ね問題ないです。しかしながら、

conv_name.gsub!(/,/, ',')
conv_name.gsub!(/\./, '.')

と、半角を全角に置換する部分が正常に動いていませんでした。
原因は、ソースの文字コードS-JISだったから。つまり'.'という文字列リテラルがS-SJISのバイナリになっており、それがUTF-8で解釈されたため不具合を引き起こしていたのでした。