SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

あるテキストファイルをiconvコマンドで文字コード変換しようとすると、iconvコマンドが失敗する現象に遭遇した。

どうやら、バイトコードC2A0(UTF8の半角空白)が入っているのが原因のようだ。

キーボードでは入力しにくいので、どこかからコピー&ペーストで入力した文字だと思うのだが、C2A0が混入している。

これを除去しないと、CSVに書き出して、 「iconv -f UTF-8 -t SJIS-WIN UTF-8のCSVファイル > Shift_jisのCSVファイル」をするとき失敗する。

MySQLに除去させてみた(phpで除去してもいよいけど)。

SELECT TRIM(REPLACE(code, CHAR(194, 160), '')) FROM xxxxx;

c2 = 194, a0 = 160。CHAR()でUTF-8の半角スペースc2a0を作って、REPLACE()。
コピー&ペースト対策なので、ついでにTRIM()。

iconvコマンドは無事実行できました。

関連するメモ

コメント