UTF-8の半角スペースについて
先日苦しめられたのでメモ書き。
UTF-8には2種類半角スペースが存在し、普通の半角スペースと文字コード「C2A0」で表される空白がある。
UTF-8で書かれたモノをShift-JISやEUCに変換した際に不可解な"?"が入っていたら「C2A0」が入ってる恐れがある。
コイツの何が厄介かって、変換前の文字列を見てもただの半角スペースに見えるところだ。
一度変換してみて?が混入してたらこのコードを足してみよう。(PHP専用)
$content = str_replace( "\xc2\xa0", " ", $content );
書いてある通り「C2A0」を削除するコード。これで?は出なくなりました。