mysql にインポートしている乱雑なデータのデータ クリーニングを行っています。
データには、「u00e9」など、実際に文字列に埋め込まれている「疑似」Unicode 文字が含まれています。
フィールドは次のようになります。「Jalostotitlu00e1n」 この厄介な「u00e1n」を削除し、対応する utf 文字
に置き換える必要があります。おそらく部分文字列と CHR を使用して、mysql でこれを行うこともできますが、PHP 経由でデータを前処理しているので、そこでも行うことができます。
utf データを使用するように mysql と php を設定する方法はすでに知っています。実際、問題はインポートしたソース データにあります。
ありがとうございます
/* utf8 htmlをansiに変換するphp関数 */
リーリー###やり方がある。すべての
uXXXX
つまりを HTML 表現に置き換え、
html_entity_decode()を実行します。
echo html_entity_decode("Jalostotitlán");
形式
u1234
のすべての UTF 文字は、HTML では
ሴとして出力できます。ただし、UTF シーケンスの先頭を識別する文字が他にない場合、誤検知が大量に発生する可能性があるため、置換を行うことは非常に困難です。単純な正規表現は
のようになります。preg_replace('/u([\da-fA-F]{4})/', '\1;', $str)