Warning: DOMDocument::load() [domdocument.load]: Unsupported encoding gb2312

it2022-05-09  17

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

相关资源:数据结构—成绩单生成器

最新回复(0)