半角空白が除去できないなぁと思って、文字のバイトコードを見て、冷や汗
半角空白の文字なんてあるんですね。
こっちは通常の半角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が通らない。
何か意図があって作られたのだろうけど、使う側にしてみたら、巧妙に仕組まれた罠にしか思えない。