首页 > 数据库 > SQL > 正文

php+mysql出现乱码如何解决

冷炫風刃
发布: 2025-11-03 23:37:02
原创
822人浏览过
答案是统一使用UTF-8编码可解决PHP+MySQL乱码问题。需确保数据库和数据表创建时指定utf8mb4字符集,已有表可通过ALTER语句转换;PHP连接MySQL时应使用mysqli的set_charset方法或PDO在DSN中设置charset=utf8mb4;PHP输出前发送header("Content-Type: text/html; charset=utf-8");HTML中添加<meta charset="UTF-8">标签;同时PHP文件须保存为UTF-8无BOM格式。常见错误包括仅修改数据库编码而忽略连接字符集或文件编码不一致,导致乱码仍出现。

php+mysql出现乱码如何解决

PHP+MySQL出现乱码,通常是因为字符集不统一导致的。只要确保从数据库、数据表、连接通道到PHP输出整个流程使用相同的字符编码(推荐UTF-8),就能有效解决乱码问题。

1. 确保数据库和数据表使用UTF-8编码

创建数据库和数据表时,明确指定字符集为UTF-8:

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydb;
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
登录后复制

如果已有数据表,可以通过以下语句修改字符集:

ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
登录后复制

2. 设置MySQL连接字符集

在PHP连接MySQL后,立即设置连接使用的字符集。使用不同的扩展方式设置方法略有不同:

立即学习PHP免费学习笔记(深入)”;

使用 mysqli 扩展:
$mysqli = new mysqli("localhost", "user", "password", "mydb");
$mysqli->set_charset("utf8mb4");
登录后复制
使用 PDO 扩展:
$pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8mb4", "user", "password");
登录后复制

注意:PDO中在DSN中直接指定charset是关键,仅靠exec("SET NAMES utf8")不够可靠。

文心快码
文心快码

文心快码(Comate)是百度推出的一款AI辅助编程工具

文心快码 35
查看详情 文心快码

3. PHP页面输出声明为UTF-8

在PHP文件中,确保输出内容前设置了正确的HTTP头:

header("Content-Type: text/html; charset=utf-8");
登录后复制

同时,保存PHP源文件本身也必须是UTF-8无BOM格式,否则可能引入额外乱码。

4. HTML页面设置字符集

在HTML模板中加入meta标签,帮助浏览器正确解析:

<meta charset="UTF-8">
登录后复制

基本上就这些。只要数据库、连接、PHP脚本、HTML输出四者都统一使用UTF-8(推荐utf8mb4),中文乱码问题基本都能解决。常见错误是只改了数据库却忘了设连接字符集,或PHP文件保存成了GBK编码。检查每一步是否一致,问题就不难定位。

以上就是php+mysql出现乱码如何解决的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号