はい、できます。
Mysqlサーバーに、必要なデータエンコーディングを指定していません。
ページエンコーディングが保存されているデータエンコーディングと異なる場合、Mysqlは任意のエンコーディングを提供できます。そして、その場で再コーディングします。
したがって、クライアントの優先エンコーディング(PHPコードはそのデータベースクライアントです)を通知する必要があります。
デフォルトでは、latin1
です。 。したがって、latin1文字テーブルにはそのような記号がないため、代わりに疑問符が返されます。
mysqlに必要なエンコーディングを伝えるには2つの方法があります:
- もう少し好ましいのはmysqli_set_charset() 関数(あなたの場合のメソッド)。
- あまり好ましくないのは
SET NAMES
クエリ。
ただし、mysqli拡張機能を適切に使用している限り、実際には問題ではありません。 (あなたはそうではありませんが)
mysqlでは、このエンコーディングはutf8
と呼ばれることに注意してください 、ダッシュやスペースなし。