PHP 默认字符集需在php.ini中设default_charset="UTF-8"并重启服务器;MySQL连接须用utf8mb4(mysqli→set_charset,PDO→DSN加charset=utf8mb4);HTML需meta charset与HTTP头一致;文件保存为UTF-8无BOM。
PHP 本身没有“安装时自动设为 UTF-8”的开关,default_charset 的默认值在不同版本中也不同(PHP 5.6 是 UTF-8,PHP 7.0+ 默认仍是 UTF-8,但很多旧环境或自编译安装可能被覆盖)。关键不是“怎么设”,而是“在哪设、设哪里才真正生效”。
这是最直接控制 PHP 输出 HTTP 响应头中 Content-Type 字符集的方式。但它只影响 header("Content-Type: text/html") 类响应,不改变 MySQL 连接、文件读写或内部字符串处理逻辑。
default_charset 必须写在主 php.ini 文件中(可通过 php --ini 或 phpinfo() 查看加载路径)default_charset = "UTF-8",取消注释并确保值是
"UTF-8"(带英文双引号,大小写不敏感但建议大写 U 和小写 tf-8)[PHP] 段落下方systemctl restart apache2 或 service php-fpm restart),仅 reload 不生效即使 default_charset 是 UTF-8,PHP 连接 MySQL 时默认用的是 latin1(尤其老版本 mysqli/pdo),导致 SELECT 出来的中文变乱码。这不是 PHP 字符集问题,而是连接协议层没协商好。
mysqli 时,连接后立即执行:$mysqli->set_charset('utf8mb4');(注意是 utf8mb4,不是 utf8)PDO 时,在 DSN 中加入 ;charset=utf8mb4:$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', $user, $pass);init_commands 或 SET NAMES,兼容性差且易被忽略浏览器按 HTML 中的 或 HTTP Content-Type 头解析页面。两者不一致时,以 HTTP
头为准;若 HTTP 头没带 charset,才 fallback 到 。
header('Content-Type: text/html; charset=UTF-8'); 中写:最容易被忽略的是:MySQL 的 utf8 实际只支持 BMP 字符(不支持 emoji),必须用 utf8mb4 + 对应的表/列字符集 + 连接层设置三者统一。光改 php.ini 只解决一半问题。
# mysql
# php
# html
# apache
# 浏览器
# vs code
# mysql连接
# notepad
# select
# mysqli
# pdo
# 字符串
# bom
# http
# 的是
# 重启
# 保存为
# 这是
# 也要
# 设为
# 英文
# 这不是
# 仍是
# 不存在
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Python变量绑定机制_引用模型解析【教程】
Win11怎么设置屏保_Windows 11屏幕保护程序开启与设置【详解】
Win11视频默认播放器怎么改_Win11关联第三方播放器【步骤】
c++怎么操作redis数据库_c++ hiredis库连接与命令执行【实战】
Windows10系统怎么查看显卡驱动_Win10设备管理器驱动更新
如何在Golang中使用内置函数_Golanglen append make等使用技巧
如何使用Golang实现容器自动化运维_Golang Docker运维管理方法
php报错怎么查看_定位PHP致命错误与警告的方法【教程】
VSC怎么在PHP中调试MySQL_数据库交互排查技巧【教程】
Win11怎么关闭触摸键盘图标_Windows11任务栏系统托盘设置
How to Properly Use NumPy in VS Code
Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡时长设置【步骤】
Win11怎样彻底卸载自带应用_Win11彻底卸载自带应用方法【步骤】
如何在Golang中使用time处理时间_Golang time时间解析与格式化方法
Python类装饰器使用_元编程解析【教程】
如何使用Golang实现多重错误处理_Golangerror组合与判断方法
Mac怎么安装软件_Mac安装dmg与pkg文件的区别【指南】
Windows11如何设置专注助手_Windows11专注助手使用攻略【技巧】
Windows 10自带杀毒软件在哪_Windows 10打开和使用Windows安全中心
c++协程和线程的区别 c++异步编程模型对比【核心】
c# Task.ConfigureAwait(true) 在什么场景下是必须的
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何在Golang中配置代码格式化工具_使用gofmt和goimports
c++如何实现多态性_c++ 虚函数表原理与动态绑定机制【教程】
如何在Golang中捕获JSON序列化错误_Golangjson.Marshal错误处理示例
Win10怎样设置多显示器_Win10多显示器扩展设置【攻略】
Win11无法安装软件怎么办_Win11解除应用安装限制设置【修复】
如何在Golang中实现RPC异步返回_Golang RPC异步处理与回调方法
Windows如何拦截腾讯视频广告_Windows拦截腾讯视频广告方法【方法】
php打包exe后无法读取环境变量_变量配置方法【教程】
如何在JavaScript中动态拼接PHP的base_url与jQuery变量
Win11怎么开启游戏工具栏_Windows11 Xbox Game Bar快捷键
Mac如何开启夜览模式_Mac护眼模式设置与定时
Win11任务栏怎么固定应用 Win11将软件图标固定到底部【步骤】
Win11怎么设置任务栏对齐方式_Windows11个性化任务栏行为
Python异步网络编程_aiohttp说明【指导】
Windows10系统怎么查看防火墙状态_Win10安全中心网络保护
如何使用Golang优化模块引入路径_Golanggo mod tidy清理与优化方法
如何在 ACF 中正确更新嵌套多层的 Group 字段子字段
Win11键盘快捷键大全_Windows 11常用高效快捷键汇总【技巧】
Python装饰器复用技巧_通用能力解析【教程】
Mac怎么查看活动监视器_理解Mac进程和资源占用【指南】
Python列表推导式与字典推导式教程_简化代码高效写法
Windows10系统怎么查看系统版本_Win10运行winver命令查询
Win11怎么关闭触摸屏_禁用Win11笔记本触摸屏功能设置【教程】
如何在 Go 同包不同文件中正确引用结构体
mac怎么安装adb_MAC配置Android ADB开发环境【详解】
Win11怎么设置屏保时间_调整Win11屏幕保护等待时间【详解】
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
2026-01-01
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。