php 利用Gd库添加文字水印乱码的问题及解决方案

时间:2022-02-15 01:54:16

最近一个项目进行了服务器迁移,部署后发现 ,其中一个为图片添加水印文字的功能出现了乱码问题,确认功能代码不存在问题,同时项目代码都是使用UTF-8编码,不存在编码问题,也检查排除了字体文件出现问题的可能性,最终查阅资料后锁定到了 一个php编译参数 --enable-gd-jis-conv.

--enable-gd-jis-conv:

如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码,最终导致正常的中文变成乱码

解决方案:

1.去除--enable-gd-jis-conv 选项,重新编译php

2.将字符转换为html实体

mb_convert_encoding ('测试', 'HTML-ENTITIES', 'UTF-8');