漏装php55w-mbstring导致中文邮件乱码
朋友的WordPress发中文邮件总是乱码,喊我帮忙看看。很奇怪,后台、文章里的中文都能正常显示,看起来一切正常;我在我电脑上搭了一套,同样的代码,发邮件也没问题。
后来打开phpmailer的debug模式,发现什么都对,就是中文内容都是问号。
继续往上找到发邮件的函数,运气不错插件留了filter,遂修改模板,add_filter强制转换内容。
转换前先检查,不是UTF-8再转:
if (!mb_detect_encoding($content)) {
$content = iconv('ASCII', 'UTF-8', $content);
}
return $content;
结果代码传上去报错,说没有mb_detect_encoding,然后想起来yum安装php时确实默认不包含很多扩展,于是手动安装yum install php55w-mbstring。然后重启apache,发邮件测试,正常了。
我又想是不是缺少多字节文本模块(Multibyte String)导致原先无法发送中文呢?去掉filter,仍然正常,确实如此。
总结
yum安装新版php需要增加源,而新版的源默认不包含很多常用的库,使用的时候最好都装上。WordPress的翻译机制面对多字节文本时,编码不对不会报错,也需要小心。
相关文章
记一次 TiDB Cloud Serverless 超额导致的博客超时故障
一次真实故障复盘:TiDB Cloud Serverless 免费额度用尽导致博客 502 超时。记录从发现问题、定位到 RU 超额、上调预算恢复服务的全过程,以及后续降低数据库用量的思路,供使用 S
2023-06-177 分钟
TiDB 账单爆炸之后:一次跌宕起伏的降本排查,从 Cloudflare 边缘到数据库计费内核,降本$30/月
博客的 TiDB 账单逼近限额,RU 基线常年 110+。我用两天逐层排查:边缘缓存、漏洞扫描器、WordPress 对象缓存、连接税、TiFlash 副本、演示数据……一个接一个假设被数据打脸。把能
2026-07-1615 分钟
测试使用 Notion 作为编辑器发布博客
测试用 Notion 作为编辑器发布 WordPress 博客:博客重构成 headless 架构后的内容工作流探索,记录 Notion 同步方案的配置过程与遇到的问题。
2026-02-082 分钟


