处理 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中文网其他相关文章!