質問

私たちのウェブサイトにはこうしたキャラクターがあります:fãƒâ©mnyomãƒâ³

それは別の言語で入力された通りの住所です(どちらを知りませんが)。これがDBのセットアップです:

mysql 4.1.2log
charset cp1252 West European (latin1)

私はPHPを使用していますが、mbstrings()はありません(このアドレスで文字列変換は行いませんが、ただエコーだけです)。

MySQL charsetをCP1252からUTF-8に変更し、次のようなものを使用したことを確認した場合 header( 'Content-Type: text/html; charset=UTF-8' ); それは私の状況を改善しますか?または、データはCP1252チャーセットで保存されており、私にできることは何もないので、データはhosedされていますか?元のデータベースは2002年に作成され、それ以来使用/拡張されています。サーバーをアップグレードし、ダンプを再輸入しましたが、恥ずかしいことに、慈善セットにあまり考えを与えないことを認めています。

私がホースを持っている場合、私はおそらくそれらのフィールドのテキストを削除するだけですが、私は今後Unicodeをサポートしたいので、私が発行した場合 ALTER database_name DEFAULT CHARACTER SET utf8; これにより、将来のマルチバイトエンコーディングが正しく保存され、少なくとも方程式から保存されていることを確認しますか(PHPを心配させます)。

ありがとう -

役に立ちましたか?

解決

1)すべての充電器をUTF8に変換します:

ALTER database_name DEFAULT CHARACTER SET utf8;

2)ページのクエリの前にこれを発行します。

mysql_query("set names 'utf8'");

3)このヘッダーを使用してください。

header( 'Content-Type: text/html; charset=UTF-8' );

4)このメタタグを挿入します:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>

5)また、これを読んでください: http://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top