私はそのような問題を抱えています。最初にmysqlテーブルを見てください=>
CREATE TABLE IF NOT EXISTS users(
id int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(40) CHARSET utf8 COLLATE 'utf8_unicode_ci' NOT NULL,
surname VARCHAR(40) CHARSET utf8 COLLATE 'utf8_unicode_ci' NOT NULL,
);
データは正常に保存されていますが、この情報を .php ファイル (エンコーディングも utf8) に取得しようとすると、まだ疑問符 (?????) が表示されます。どうすれば解決できますか?
アップデート
何かうまくいかない。だから私は2つのphpファイルを持っています。1つはデータベースから情報を取得するクラスを定義したclassA.phpファイルで、このファイル(classA.php)を表示したいdefault.phpファイルに含めましたデータ。私は上に書かれているのとまったく同じ表を持っています、そして私は書いています
header('Content-Type: text/html; charset=UTF-8');
default.php の最初の行ですが、それでも機能しません。アドバイスありがとうございます :))
2回目の更新
このスクリプトは classA.php ファイルにあり、そのエンコーディングは default.php ファイルエンコーディングのようにデフォルトです。これを最初の行のdefault.phpファイルに追加しました
header("Content-Type: text/html; charset=UTF-8");
しかし、それでも機能しません。
3回目の更新
SQL =>
create table ok(
id int(2) not null auto_increment primary key,
name varchar(20) charset utf8 not null);
およびphpファイル
<?php
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$con = mysqli_connect("host","user","pass","db");
if (mysqli_connect_errno()==0){
if ($r = mysqli_query($con,"SELECT * FROM ok")){
mysqli_set_charset($con,"utf8");
while ($d = mysqli_fetch_assoc($r)){
echo $d['name'] . "<br>";
}
}
}
if (isset($con)){
mysqli_close($con);
}
?>
</body>
</html>
OKテーブルにこれを挿入しました=>
insert into ok(name) values("one"),("ერთი"),("two"),("ორი");
PS。特殊文字はグルジア語です:)
そして、英語の文字は問題なく、グルジア語には疑問符が付きます:(
とにかくうまくいきません:(