〜の扱いについて
いまだに日本語のコード変換絡みで問題が残っているだなんて思いもよらなかったんですが、まだいくつか注意してやらないといけないんですねぇ。その辺りの問題は10年以上前からあったはずなので、もういい加減そんなことはと思っていたので、ちょっとびっくりしました。
どの辺りが問題?
セント記号(¢)、ポンド記号(£)、ノット記号(¬)、二重縦線(‖)、マイナス記号(−)、波線(〜)、濁点(゛)、半濁点(゜)、アンド記号(&)、半角の濁点、半角の半濁点なんかがやばそうですが、当面の問題は、波線(〜)なので、これだけ対処することにします。
非常に安直な対処方法
require 'jcode' require 'kconv' class String def include8160? self.toutf8.include?("\343\200\234") end end
オレオレアプリでは文字コードは UTF-8 固定なので、こういうメソッドを String クラスに追加しました。文字列に波線(〜)があるかどうかだけわかれば、後は個別対応で処理するというわけです。
参考
- こちら(→‘愛’で学ぶ文字コードと文字化けの常識 (3/4):プログラマーの常識をJavaで身につける(6) - @IT)を参考にしました。