-1

これについてはたくさんの質問があることを理解しており、私はそれの頭または尾を作ろうとしたと信じていますが、それでも点をつなぐのに苦労しているようです。

そこで、xmlデータフィードUTF_8を取得し、それをMySQLテーブルに格納します(DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci)。正しく検索できるようにしたいvarchar(255)があります。ほとんどの場合、期待どおりに機能しますが、次のような国際的な文字を含むデータがあります。

  1. エルコラザン
  2. エルコラソン

文字列1はブラウザで正しく表示されますが、文字列2は表示されません。文字列1は「ElCorazón」のように見え、文字列2は「ElCoraz�n」のように見えます。ただし、「ElCorazón」または「ElCorazon」を選択しようとすると、文字列2しか表示されません。

私がやりたいことは次のとおりです。1。データフィードを処理およびスクラブして、すべての正当な文字を保持し、壊れた文字、改行、キャリッジフィード、タブなどを破棄します。

phpスクリプトにpreg_replaceがありますが、正当な文字であると思われるóが削除されます。多かれ少なかれすべての国際文字が削除され、それが発生することは望ましくありません。クリーンなデータが必要です。

  1. 「ElCorazón」または「ElCorazon」を使用してテーブルを検索し、「ElCorazón」または「ElCorazon」に等しい行を取得できるようにしたい。

  2. もちろん、ブラウザへのすべての出力が正しく表示されるようにしたいです。

私は次のことを行う方法について頭を悩ませてきました、

国際文字を失わないようにデータを正確にスクラブするにはどうすればよいですか?

検索機能が機能するようにóをóに変換し、phpで変換して正しく表示しようとしますか?

検索用と表示用の2つの列を作成する必要がありますか?

もう1つは、「および」を「&」に置き換えたり、略語の完全な単語を切り替えたりするなど、さらに単純な文字列フォーマットをさらに下流で実行したいことです。

私が言ったように、私は検索し、iconv、mb_convert_encodingなどを試しましたが、望ましい結果は得られませんでした。

点をつなぐ助けをいただければ幸いです。

4

1 に答える 1

0

ルールは簡単です

mysql_set_charset('utf8');

(または同様の機能は mysql API によって異なります) 接続

header('Content-type: text/html; charset=utf-8')

ページの出力の前に

于 2013-02-16T15:21:41.963 に答える