これについてはたくさんの質問があることを理解しており、私はそれの頭または尾を作ろうとしたと信じていますが、それでも点をつなぐのに苦労しているようです。
そこで、xmlデータフィードUTF_8を取得し、それをMySQLテーブルに格納します(DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci)。正しく検索できるようにしたいvarchar(255)があります。ほとんどの場合、期待どおりに機能しますが、次のような国際的な文字を含むデータがあります。
- エルコラザン
- エルコラソン
文字列1はブラウザで正しく表示されますが、文字列2は表示されません。文字列1は「ElCorazón」のように見え、文字列2は「ElCoraz�n」のように見えます。ただし、「ElCorazón」または「ElCorazon」を選択しようとすると、文字列2しか表示されません。
私がやりたいことは次のとおりです。1。データフィードを処理およびスクラブして、すべての正当な文字を保持し、壊れた文字、改行、キャリッジフィード、タブなどを破棄します。
phpスクリプトにpreg_replaceがありますが、正当な文字であると思われるóが削除されます。多かれ少なかれすべての国際文字が削除され、それが発生することは望ましくありません。クリーンなデータが必要です。
「ElCorazón」または「ElCorazon」を使用してテーブルを検索し、「ElCorazón」または「ElCorazon」に等しい行を取得できるようにしたい。
もちろん、ブラウザへのすべての出力が正しく表示されるようにしたいです。
私は次のことを行う方法について頭を悩ませてきました、
国際文字を失わないようにデータを正確にスクラブするにはどうすればよいですか?
検索機能が機能するようにóをóに変換し、phpで変換して正しく表示しようとしますか?
検索用と表示用の2つの列を作成する必要がありますか?
もう1つは、「および」を「&」に置き換えたり、略語の完全な単語を切り替えたりするなど、さらに単純な文字列フォーマットをさらに下流で実行したいことです。
私が言ったように、私は検索し、iconv、mb_convert_encodingなどを試しましたが、望ましい結果は得られませんでした。
点をつなぐ助けをいただければ幸いです。