用PHP生成一个xml文件,Firefox能读,IE却不能读取!

方欣 2006-04-18 07:08:18
我用PHP动态生成一个xml文件,通过Firefox可以正确读取,但是IE浏览器却报错误。以下为所报错误:

文本内容中发现无效字符。处理资源 'http://..../kwiki_rss.php' 时出错。第 45 行,位置: 103
<description><![CDATA[Introduction and Update YCMRS:基

我怀疑是汉字截取乱码造成的问题,不知道如何解决,请大侠指点!
...全文
306 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
方欣 2006-04-19
  • 打赏
  • 举报
回复
回楼上,您说的语言声明我也有的:<?xml version="1.0" encoding="utf-8" ?>
我刚才看了一些相关的帖子,说是和IE对CDATA的解析不完整,我怀疑是不是因为此问题造成的,不知道有没有高手解释一下!
xuzuning 2006-04-19
  • 打赏
  • 举报
回复
这个问题与客户端代码有关,而与php关系不大

1、可考虑增加类型声明header("Content-type: text/xml");
无论是否已有该声明都对你的问题影响不大,因为xml文档已经被开始解析了
2、xml文档中应有语言声明
<?xml version="1.0" encoding="语言编码名" ?>
对xml的解析完全依赖该声明,缺省则认为是utf-8编码
只要文档中内容的编码与该声明相符就可以被正确识别
方欣 2006-04-19
  • 打赏
  • 举报
回复
回楼上,这样我已经加了,所以在Firefox上才没有问题的!现在是在IE下有问题!
coolstr 2006-04-19
  • 打赏
  • 举报
回复
输出前加上:header("Content-type:xml/text");
方欣 2006-04-19
  • 打赏
  • 举报
回复
我是用PHP写的代码,代码为:
$str = "...<description><![CDATA[$description]]></description>...";
echo $str;
我如何加上编码头信息啊!
xuzuning 2006-04-19
  • 打赏
  • 举报
回复
由于ie和Firefox在处理CDATA节点略有差异
贴出你读取CDATA节点的js代码
方欣 2006-04-19
  • 打赏
  • 举报
回复
我已经找到解决问题的答案了,现在和大家一起分享。我通过<![CDATA[]]>显示的内容是别人提供的字符串,而这个串存在半个汉字的可能。IE浏览器在解析的时候,会将这半个汉字和后面的]]>符号一起算一个汉字,这样就存在格式错误。因此,我在显示字符串之前先把这半个汉字去掉就可以了,呵呵!
sdsuper 2006-04-18
  • 打赏
  • 举报
回复
是的。编码问题。你在php加上编码头信息
zeroleonhart 2006-04-18
  • 打赏
  • 举报
回复
把你的45行贴出来看看阿

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧