在进行PHP和MYSQL数据库编程时,常会遇到中文字符出现乱码的问题。这是由于PHP默认以ISO-8859-1编码输出,而MYSQL默认的编码方式是latin1。为了解决这个问题,我们可以采用使用SET NAMES utf8校正的方法。
具体的操作步骤如下:
1.修改mysql配置文件
将mysql配置文件的默认编码改为utf8,可通过修改my.ini或my.cnf文件实现。找到[mysqld]标签,将以下行添加到其中
character_set_server=utf8
collation-server=utf8_unicode_ci
并且在[client]标签中添加以下内容
default-character-set=utf8
保存并退出,重启mysql服务以应用更改。
2.使用SET NAMES utf8命令
在进行数据库连接之前,执行SET NAMES utf8命令,将当前连接编码修改为utf8,以便对中文数据进行正确的存储和显示。
示例1:使用PDO连接MYSQL数据库,设置字符集为utf8
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$username = 'root';
$password = '';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
try {
$dbh = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
示例2:使用mysqli扩展连接MYSQL数据库,设置字符集为utf8
$mysqli = new mysqli('localhost', 'root', '', 'test');
if ($mysqli->connect_errno) {
echo 'Connection failed: ' . $mysqli->connect_error;
}
$mysqli->set_charset('utf8');
通过上面的方法,我们可以成功解决PHP和MYSQL中文乱码问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP MYSQL乱码问题,使用SET NAMES utf8校正 - Python技术站