- 現在 Wamp 2.20 を使用中
- MySQL のバージョン: 5.5.20
- PHP バージョン: 5.3.10
- テーブル照合: utf8-bin
header('Content-type: text/html; charset=utf-8');
MySQL テーブルに保存されたデータがギリシャ文字であることがわかりますが、PHP からエコーしようとすると、「?」に変わります。疑問符。
クライアント接続がUTF8に設定されていることを確認してください。例:
SQL
SET NAMES UTF8;
PHP MySQLi
mysqli_set_charset('utf8');
PHP PDO
$handle = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
));
PHP mysql(非推奨-使用しないでください)
mysql_set_charset('utf8');
ANSI as UTF-8
ファイルが別名を使用して保存されていることを確認してくださいUTF-8 without BOM
。NotePad ++を使用してそれを行うことができます:http://npp-community.tuxfamily.org/documentation/notepad-user-manual/document-properties/encoding
また、UTF-8(Unicode)を使用する場合は、次の点に注意してください。
データをエコーする前に、 htmlentitiesを使用して特殊文字をエンコードしてみてください。
echo htmlentities($data);