多くのクロールを実行し、一部のクローラーは入力時にこれを実行しなかったため、データベースからHTMLエンティティを削除するタスクに着手しました:(
そこで、私は次のような一連のクエリを書き始めました。
UPDATE nodes SET name=regexp_replace(name, 'à', 'à', 'g') WHERE name LIKE '%#xe0%';
UPDATE nodes SET name=regexp_replace(name, 'á', 'á', 'g') WHERE name LIKE '%#xe1%';
UPDATE nodes SET name=regexp_replace(name, 'â', 'â', 'g') WHERE name LIKE '%#xe2%';
これは明らかにかなり素朴なアプローチです。私はデコード機能で何か賢いことができるかどうかを考えようとしてきました。おそらく、のような正規表現でhtmlエンティティを取得し、その一部だけ/&#x(..);/
をASCIIデコーダーに渡して、文字列を再構築します...または何か...%1
クエリを押し続けましょうか。おそらく40かそこらしかないでしょう。