上一篇 下一篇 分享链接 返回 返回顶部

时区与字符集:时间错乱和乱码排查

发布人:泮崵 发布时间:9小时前 阅读量:6

时间差 8 小时与中文乱码是最高频的两类环境问题,给出各层排查点。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。

涉及 时区设置、字符集、中文乱码 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。

时间差 8 小时

系统时区、PHP 时区、数据库时区三层都要对,只改一层仍会错。

系统时区

timedatectl set-timezone Asia/Shanghai,同时确认 NTP 同步正常。

PHP 时区

php.ini 的 date.timezone 与代码里 date_default_timezone_set 保持一致。

乱码排查顺序

文件编码、连接字符集、表字符集、页面 meta 四处,从前往后查。

统一方案

全链路 UTF-8,MySQL 用 utf8mb4,连接串显式指定 charset,避免默认 latin1 惹祸。

速查表

环节关键动作
时间差 8 小时系统时区、PHP 时区、数据库时区三层都要对,只改一层仍会错
系统时区timedatectl set-timezone Asia/Shanghai,同时确认 NTP 同步正常
PHP 时区php.ini 的 date.timezone 与代码里 date_default_timezone_set 保持一致
乱码排查顺序文件编码、连接字符集、表字符集、页面 meta 四处,从前往后查

常见问题

Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。

Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。

Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。

小结

回到这篇的 5 个环节:时间差 8 小时、系统时区、PHP 时区、乱码排查顺序、统一方案。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。

相关阅读:Nginx反向代理与负载均衡配置、SSH密钥与跳板机配置、软件包管理:yum/apt与编译安装取舍。

延伸阅读:Linux常用命令速查:文件、进程、网络、Nginx的502与504排查路径、内核参数调优:文件句柄与网络队列。

目录结构
全文
微信公众号 微信公众号
微信客服 微信客服
电子邮箱: admin@qyun.net