2

私たちのウェブサイトには次のようなキャラクターがいます: Fémnyomó

それは別の言語で入力された番地です (どちらの言語かはわかりませんが)。db のセットアップは次のとおりです。

mysql 4.1.2log
charset cp1252 West European (latin1)

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

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

私がうんざりしている場合は、おそらくそれらのフィールドのテキストを削除するだけですが、今後はユニコードをサポートしたいので、ALTER database_name DEFAULT CHARACTER SET utf8;将来のマルチバイトエンコーディングが正しく保存されるようにします。式(PHPについて心配する必要があります)?

ありがとう -

4

1 に答える 1

1

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

于 2010-08-22T08:38:05.067 に答える