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