You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

全链路字符集与校对规则配置时MariaDB服务器字符集设置不生效问题

字符集渲染异常解决方案

你之前执行的SET character_set_server = 'UTF8MB4'默认是SESSION级配置,仅对当前执行命令的数据库会话生效,PHP建立的新数据库连接不会继承该配置,因此不会生效。可按以下步骤处理:

  • 临时生效测试
    执行全局级别的配置修改,该配置在数据库重启前对所有新连接生效,可先验证是否能解决问题:
    SET GLOBAL character_set_server = 'utf8mb4';
    SET GLOBAL collation_server = 'utf8mb4_general_ci';
    
    配置完成后重启PHP服务(php-fpm等),清除页面缓存后测试符号渲染是否正常。
  • 永久生效配置
    需修改MariaDB配置文件写入固定配置,不同系统配置文件路径参考:
    • CentOS/RHEL 系列:/etc/my.cnf 或 /etc/my.cnf.d/server.cnf
    • Debian/Ubuntu 系列:/etc/mysql/mariadb.conf.d/50-server.cnf
      找到配置文件中的[mysqld]段落,新增以下两行配置:
    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_general_ci
    
    保存后重启MariaDB服务生效:
    systemctl restart mariadb
    
    重启后可执行SHOW GLOBAL VARIABLES LIKE 'character_set_server';确认配置已生效。
  • 额外排查项
    若完成上述配置后仍有异常,需排查两处常见遗漏:
    1. PHP数据库连接配置:需在建立数据库连接时显式指定字符集,例如PDO连接串添加charset=utf8mb4参数,mysqli连接调用mysqli_set_charset($conn, 'utf8mb4')
    2. 前端编码配置:确认页面响应头Content-Type包含charset=utf-8,或页面头部配置<meta charset="UTF-8">,避免浏览器用错误编码渲染页面

内容的提问来源于stack exchange,提问作者charco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:48:02