PHP および MySQL で特殊文字を扱う場合、ブラウザでデータを表示するときに予期しない文字が表示されることがあります。この問題に対処するために、一般的な解決策を検討します。
提供された情報によると、HTML は UTF-8 文字セットで正しく設定されており、MySQL テーブルとデータベースは UTF-8_spanish を使用しています。ただし、「?」で表される文字は、
これを解決する鍵は、クライアント アプリケーション (PHP スクリプト) と MySQL の間の通信にあります。 MySQL は、クライアントがデータの受信を期待している文字セットを理解する必要があります。
これを MySQL に伝えるには、接続の確立時に最初のクエリとしてコマンド SET NAMES 'utf8' を実行する必要があります。これにより、すべての文字列データが内部文字セットからクライアントが使用するエンコーディングである UTF-8 にトランスコードされるようになります。
PDO を使用する PHP スクリプトの場合、これは setAttribute メソッドを通じて実現できます:
$db = new PDO($dsn, $user, $password); $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
あるいは、mysqli を使用する PHP スクリプトの場合、set_charset メソッドは次のようにすることもできます。使用:
$mysqli = new mysqli("localhost", "user", "password", "db"); $mysqli->set_charset("utf8");
このソリューションを実装すると、特殊なスペイン語文字が PHP フォームからデータベースに正しく挿入され、文字化けすることなくブラウザに表示されます。
以上がPHP および MySQL で特殊文字が正しく表示されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。