1

私は顧客データベースにこの言葉(そして同じ場合は40以上)を持っています:

  1. Aclimação
  2. Aclima&ccedilão

両方をUTF-8に変換し、MySQLデータベースに保存する必要があります:Aclimação。

PHPでそれを行うにはどうすればよいですか?

[編集]
観察:
ユーザーが特定の「地区」を見つけた場合、2つの形式で変換することは不可能であるため、これを行う必要があります。たとえば、次のようになります。

  1. Aclimaç&aatilde;o (correct)
  2. Aclimação (incorrect: utf8 + html number encode)
  3. Aclima&ccedilão (incorrect: iso + html number encode)

私の場合、必要なエンコードは1種類だけです。ISO-8859-1です。

4

3 に答える 3

1

文字列にhtml_entity_decode()を適用した後、値を取得してデータベースに挿入します。

(指定した2番目の文字列は、不正な形式のHTMLエンティティを持っているように見えますね。)

于 2012-10-24T20:21:22.350 に答える
1
  1. mysqldumpを使用してデータベースの内容をそこからダンプします
  2. データをUTF8にiconvします
  3. 文字列は、不正な形式のhtmlエンティティを有効に置き換えます
  4. html_entity_decodeを使用して、有効なhtmlエンティティを本来あるべき文字に変更します。パラメータとしてエンコーディング(UTF-8)を指定する必要があることに注意してください。指定しないと、PHPのバージョンによって異なります。
  5. mysqlに新しいUTF-8データベースを作成します
  6. データをmysqlにインポートします

たとえば、ãはISO-8859-1に存在するとは思わないので、実際にはUTF-8が必要です。それをとして持つことは正しくありません&aatilde;、それはそれを表現するHTMLの方法です。

于 2012-10-24T20:24:44.067 に答える
1

次のソリューションでは、関数を使用してデータベースからすべてのデータをどのように変換しましたか。

mb_convert_encoding (data, 'UTF-8', 'HTML-ENTITIES');

レコードを読むときは、次のようにします。

utf8_decode (data)

サイトの選択()に基づいてレコードを探すときは、次のようにします。

utf8_encode (data)

そしてこれまでのところ、完璧に機能しました。

于 2012-10-24T21:23:45.397 に答える