まれな特殊文字(∨∧→↔∴)を挿入しようとすると、疑問符として保存されます。しかし、もっと一般的な特殊文字を挿入しようとすると、すべてうまく行きます。MySQLは一般的な特殊文字を保存しますが、希な文字は保存しません
すべての変数、データベース、テーブル、および接続をUTF-8に設定しましたが、まだ運がありません。私は何が欠けていますか?前もって感謝します!ここで
は、最小限の例です。
<?php
header('content-type:text/html; charset=utf-8;');
$connection = mysql_connect('localhost', 'root', '');
mysql_select_db('test', $connection);
mysql_set_charset('utf8', $connection);
mysql_query('SET NAMES UTF8');
$special_character = '∴';
echo 'Encoding of the special character before insert: '.base64_encode($special_character).'<br />';
mysql_query('INSERT INTO table (column) VALUES ("'.$special_character.'")');
$query = mysql_query('SELECT column FROM table');
while ($ROW = mysql_fetch_assoc($query))
{
echo 'Encoding of the special character after retrieval: '.base64_encode($ROW['column']).'<br />';
echo 'Output: '.$ROW['column'].'<br />';
}
mysql_close($connection);
?>
このスクリプトの出力は次のとおりです。検索した後に特殊文字の4oi0
エンコード:挿入する前に、特殊文字の
エンコーディング:Pw ==
出力:?
my.cnfファイルを持たないMac OSX用の標準MySQLインストールがあるからでしょうか?おそらく、このインストールに付属するデフォルトはUTF-8ではないでしょうか?誰でも知っていますか?
更新:Webホストでコードを実行すると表示されないため、問題はローカルインストールのMySQLにあると判断しました。私はまだそれを解決したい。
本当に疑問符として保存されているのですか、そういう形でphpmyadmin/browserが表示されていますか? –
フォントの問題?文字を出力するのにあなたはどんなフォントを使用していますか?どのように入力していますか? –
私はPHP経由とTerminal経由の両方で入力しようとしましたが、どちらも表示しようとしました。まだ疑問符が表示されます。 – Sophivorus