PHP加文字水印时报错 imagettftext, [function.imagettftext]: any2eucjp
解决办法1:
由于GD库编译时添加了: --enable-gd-jis-conv 的支持( GD: Enable JIS-mapped Japanese font ) , 在phpinfo()里也可以看到:JIS-mapped Japanese Font Support的支持为enable,需要重新编译PHP,在编译PHP时,去掉 --enable-gd-jis-conv即可
去掉编译选项“--enable-gd-jis-conv”
关闭GD库中 “JIS-mapped Japanese Font Support”
贴上官方的解释:
There is no fallback ot UTF-8. It accepts UTF-8 by default. The problem
about JIS is when you pass a non UTF-8 string, it can be seen as JIS
enconded string.
About the mbstring issues, I have no idea how it works and how it
affects the input parameters. It is something happening before we got
the hand in the gd function.
解决办法2:
mb_convert_encoding($markWords,"html-entities","UTF-8")
/**
* 将文本由UTF8编码转化为数字形式编码(HTML实体)
* @param $arr 该参数可以为数组或者string
* @author Steven lxq70361@qq.com
*/
function iconv_arr($arr){
if(is_array($arr)){
foreach($arr as $k=>$v){
$arr[$k] = iconv_arr($v);
}
}else{
$arr = mb_convert_encoding($arr, "html-entities","utf-8" );
}
return $arr;
}
?>
参考:
http://hi.baidu.com/xuguangzhi2003/item/9dd321e68460b8afc00d753b
http://blog.sina.com.cn/s/blog_6d677b680100tqb3.html
http://stackoverflow.com/questions/910793/detect-encoding-and-make-everything-utf-8