3

持っているデータベースで作業しようとしていますが、漢字を表示できません。データベースは実際には最初はMSAccessファイルであり、プログラムを使用してmysqlに変換しました。とにかく、多くの行には漢字が含まれていて、どのブラウザでも正しく表示することができません。

それ以外の場合は漢字を問題なく表示できます。また、phpmyadminを使用してテーブルを表示しても漢字を表示できます。この問題の解決策を探しましたが、通常の修正は「SET NAMES'utf8'」クエリを実行することであるように見えますが、これは表示される文字を疑問符から他の奇妙な記号に変更するだけでした。

phpmyadminを見ると、データベースとすべてのテーブルの照合はutf8_general_ciです。

何か案は?

4

2 に答える 2

4

MySQL DBの場合、これにより問題が解決します。

$dbh = mysql_connect($hostname, $username, $password);    
mysql_select_db($db, $dbh);    
mysql_set_charset('utf8', $dbh);

PDOソリューション:

$dbh = new PDO('mysql:host=$hostname;dbname=$db;charset=UTF-8', $username, $password);
于 2012-05-20T15:36:51.633 に答える
0

あなたはいくつかのことを確認する必要があります:

  • インポートする前に、使用するテーブルの文字セットをutf8として設定する必要があります。また、インポートされたデータに実際に適切なutf8エンコード文字が含まれていることを確認する必要があります。
  • インポート時に、確立されたセッションの文字セットを指定する必要があります(実行SET NAMES utf8;など)
  • インポート後、特殊文字が含まれていることがわかっている行を読み取る小さなスクリプトを作成する必要があります。スクリプトは次のことを行う必要があります。
    • 使用header('Content-Type: text/plain; charset=utf-8');または設定したいmimeタイプ
    • 確立されたMySQL接続に正しい文字セットを設定します(utf8)

すべてがうまくいけば、データが正しく表示されるはずです。

于 2012-05-20T15:47:29.277 に答える