IT系バンドマンの日常

備忘録やライフログなど

野良データにやられた話

PHPでちょっとしたスクレイピングのプログラムを作ったとき、 json_encode() で下記のエラーがでてハマった

// json_encode()のエラーは json_last_error_msg();  で出力できる

Malformed UTF-8 characters, possibly incorrectly encoded

blog.supersonico.info

こちらのサイトを参考にしたところ、どうもゴミ文字が混ざっているとencodeのエラーでバグるらしいので、下記のコードでUTF-8からUTF-8への変換をかけてやると回避できるとのこと。

$convert =  mb_convert_encoding ($string, 'UTF-8', 'UTF-8');

データを連想配列で持たせていたのでそのままmb_convert_encodingしたかったけど文字列しか渡せないみたいだったのでスクレイピングしたデータを代入する箇所を1箇所ずつmb_convert_encodingして対応しました

まとめ

野良データの取扱には時間がかかるので気をつけましょう、、、