それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

UTF-8 の半角空白ってあるんですね。。。

半角空白が除去できないなぁと思って、文字のバイトコードを見て、冷や汗

半角空白の文字なんてあるんですね。

こっちは通常の半角ASCII

>> pp " ".ord
32

こっちは、160の半角空白。

>> pp "\u{a0}".ord
160
>>

通常見るだけなら、半角空白に見える

>> pp "\u{a0}"
" "
>>

なんのためにあるんですかねぇ

通常の半角空白

>> pp "\u{20}"
" "
>> pp "\u{20}"  == "\u{a0}"
false

比較すると、当然false、なので半角空白の置換やtrim/stripが通らない。

何か意図があって作られたのだろうけど、使う側にしてみたら、巧妙に仕組まれた罠にしか思えない。

文字コードC2A0(UTF-8の半角空白)なんてあるんですね at softelメモ

unicode - RubyでIntegerと文字を相互変換する - Qiita