まず、MySQLテーブルがエンコードにUTF-8を使用していることを確認してください。もしそうであれば、それは次のようになります。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
....
</html>
そして、それが動作するはずです:
mysql> SHOW CREATE TABLE Users (
...
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 |
次に、あなたのHTMLページがUTF-8を表示するように設定されていることを確認してください。
編集:私は意図的に私はそれがすでに考えられていたと思ったので、照合の話を、誰もの利益のために、私はこの答えにいくつかのより多くを追加できませんでした。
あなたの状態、
私はMySQLのテーブルの照合順序で... UTF-8に設定する文字セットを持っています。
テーブルの照合は、charsetと同じではありません。
照合は、自動的に1つの文字セットを別の文字セットに変換しようとする行為です。照会の目的のためにです。たとえば、latin1のキャラクタセットとUTF-8の照合順序があり、SELECT * FROM foo WHERE bar LIKE '% - %'のような操作を行うとします。 latin1の文字セットがL + 0151 または U + 2014のいずれかと一致するテーブルに、文字列(UTF-8 U + 2014)を挿入します。あなたはUTF-8エンコーディングされたWebページの上にこのlatin1のエンコードされた文字を出力した場合のように偶然
ない...、あなたは次のようなります。
これは“testâ€です。
あなたの問題の出力であるようです。
<?php
$string = "This is a “test”.";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf8"/>
</head>
<body>
<p><?php echo $string; ?></p>
</body>
</html>
このファイルをlatin1に保存することを忘れないでください。
あなたのテーブルには、このクエリを実行するように設定されている文字セット内容を確認するには、次の(あなたの複数の英語以外の言語を使用しているがない限り)で、あなたの用途に
SELECT CCSA.character_set_name, TABLE_COLLATION FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = "database"
AND T.table_name = "table";
のみ適切な結果を:
用
+--------------------+-----------------+
| character_set_name | TABLE_COLLATION |
+--------------------+-----------------+
| utf8 | utf8_general_ci |
+--------------------+-----------------+
おかげupvotes ;-)私はここで答えを見つけ
私はあなたの非常に賢明な応答に感謝しているので、ひどいことではありません。Theodore - あなたは優れた答えで過去のPHP OOPの質問に私を助けてくれました。しかし、ここに応答するには、そこに行って、それを行ってください。私はすでに私のポストに言及しました。他のほとんどのUTF-8のものはすでに動作していることに注意してください。それはちょうどファンキーな演技をしているちょっとした引用符です。 – Volomike
私は正直言って、あなたが上記を試したと言ったところを見ませんでした。私はそれを再度読んだが、あなたがこれを言及した場所をまだ見ることができない; /私はあなたに一般的に何が問題であるかを示した。 3番目のステップは入力文字を確認することです。しかし、私はあなたがすでにそれを考えていると考えました。私は間違っていたと思います。 –
"ユーロと英国ポンドをデータベースに書き込もうとすると、その文字セットは、HTML、リッチテキストコントロールIFRAME HTML、およびMySQLテーブルの照合順序でUTF-8に設定されているため、すべてがその前にうまくいっている」 – Volomike