apache转nginx过程遇到xml如含有encoding=gb2312会无法显示
报错:Warning: DOMDocument::load() [domdocument.load]: Unsupported encoding gb2312
基础环境:centos 5.4 64bit
系统默认编码 en_US.utf-8
apache nginx都按生产要求设置成了charset=gb2312
测试代码
xmltest.php
<?
php
$xml =
new DOMDocument();
$xml->load(test.xml'
);
foreach($xml->getElementsByTagName('
list'
) as $list)
{
$value = $list->firstChild->nodeValue;
echo $value."<br />";
}
?>
test.xml
<?xml version="1.0" encoding="gb2312"?>
<xml>
<list>1
</list>
<list>2
</list>
<list>3
</list>
</xml>
如将encoding="gb2312" 改为 encoding="utf-8"则可以正常显示
或者不用encoding选项也可以正常显示
最后发现为gd版本原因,重复测试重新编译gd及php
反复编译使用gd-2.0.35存在这个问题
gd-2.0.33 gd-2.0.34不存在这个问题
附gd编译过程的一些错误解决:
问题一
/usr/bin/ld: cannot find -lltdl 解决办法如下: cd /usr/share/libtool/libltdl ./configure --prefix=/usr make make install 或用 yum install libtool-ltdl-devel 问题二 编译完gd后验证码不正常 Call to undefined function imagettftext() 原因为编译php的时候没把freetype没编译进去
编译php时需要加入--with-freetype-dir
转载于:https://www.cnblogs.com/cycsa/archive/2013/04/26/3045407.html
相关资源:数据结构—成绩单生成器