0

理解できないデータベースの問題があります。私はデンマーク出身で、PHP と MySQL でサインアップ システムを作成しました。今... 2 つのテーブルを別々に作成しました。

テーブルの 1 つ ( と呼びましょうtable1) には、PHP を介してデータベースからクエリを実行しているときに、私の最愛のデンマーク文字 (æøå) が表示されます。しかし、phpMyAdmin に移動すると、文字が奇妙に表示されます...たとえば、phpMyAdmin では次のようになります。

Bjørn (which is Bjørn)

しかし、繰り返しますが、データベースから を取得すると、mysql_query('SELECT * FROM $tablename')「Bjørn」と表示されます (当然のことです)。

今問題に...

もう 1 つのテーブル (2 と呼びましょうtable) では、phpMyAdmin で 'Bjørn' が 'Bjørn' と表示されます (正しいようです)。しかし、それを PHP に取り込むとmysql_query('SELECT * FROM $tablename')、'Bj?rn' と表示されます。文字「æøå」はすべて「?」として表示されます。

を実行してみましたSHOW TABLE STATUSが、照合が同じであることを示しています。

ではtable1変数はVARCHAR(255)であり、table2では変数はTEXTです。

両方のテーブルは次のように作成されます。

CREATE TABLE >>tablename<< ( bla bla bla ) CHARSET=UTF8 
4

2 に答える 2

2

このようにmysqlを接続する必要があります

$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);

そして、適切に取得したクエリを実行してみてください

ここでの問題は、DB への接続中にも文字セットを指定する必要があることです。

接続の文字セットを utf8 に設定しないと、保存中にも挿入がガーボールされるため、DB への接続中にこのように設定しているかどうかを一度確認してください。

お役に立てれば

最後になりましたが、ブラウザーに表示している間も、以下のように DB からブラウザーにデータをダンプするときに html ヘッダーを設定する必要があります。

<?php 
 header('Content-type: text/html; charset=utf-8'); 
?>
于 2013-04-12T15:51:19.923 に答える
1

phpmyadmin の何が問題なのかわかりませんが、自分のプログラミングでは次のことを行います。

PHP (何よりも前に):

header("Content-Type: text/html; charset=utf-8");

HTML:

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

DB クエリ:

SET CHARACTER SET utf8;

または、PDO を使用している場合、dsn は次のようになります。

mysql:dbname=mydb;host=localhost;charset=utf8
于 2013-04-12T15:55:47.053 に答える