野良データにやられた話
PHPでちょっとしたスクレイピングのプログラムを作ったとき、 json_encode()
で下記のエラーがでてハマった
// json_encode()のエラーは json_last_error_msg(); で出力できる Malformed UTF-8 characters, possibly incorrectly encoded
こちらのサイトを参考にしたところ、どうもゴミ文字が混ざっているとencodeのエラーでバグるらしいので、下記のコードでUTF-8からUTF-8への変換をかけてやると回避できるとのこと。
$convert = mb_convert_encoding ($string, 'UTF-8', 'UTF-8');
データを連想配列で持たせていたのでそのままmb_convert_encodingしたかったけど文字列しか渡せないみたいだったのでスクレイピングしたデータを代入する箇所を1箇所ずつmb_convert_encodingして対応しました
まとめ
野良データの取扱には時間がかかるので気をつけましょう、、、