气煞!肯定是编码问题!马上在代码中加入:header("Content-Type:text/html;charset=GB2312");
测试……
xml里成功写入了中文!擦了一把汗,刚想庆祝一下,刷新首页一看,晕!还是乱码。。。
干啥子哩?!
用DW打开xml,随便加入一个空格,保存。刷新一下,再晕!flash里的中文居然正常显示了!
抓破了脑袋,终究想不出何解。遂以为只要在文件写入时加入一个空格就可以解决问题,所以试着在写入文件后追加一个空格:
$file="xml/bcastr.xml";//xml文件位置
$f=fopen($file,"a");//第二个参数为a时,为追加方式打开文件。
fwrite($f," ");//追加一个空格
fclose($f);//关闭文件
满怀希望的刷新一下,结果可想而知……
无奈之下,甚至想出要用php输出js来操作xml了。但想到为了这么一点数据,又建xmldoc对象,又生成节点,删除节点的,确实很麻烦,只好又上网搜寻原因。
偶然中,发现,原来如果用记事本打开这个xml文件,无论在里面加入多少个空格,然后保存flash里都会显示为乱码的。认真看了一下,发现,原来,保存时,记事本默认是采用ANSI编码的。会不会是这个导致显示不正常的呢?
于是尝试着用UTF-8保存。刷新,显示正常了!看来,可能是fwrite时,php把内容作为ANSI编码方式写入了。那么只要在写入里,按照UTF-8方式写入就应该可以了吧。但怎样才能把文件作为UTF-8方式写入呢?
搜寻中……
答案:iconv("GB2312","UTF-8",$content)//把字符串的内容$content由GB2312转换为UTF-8
哈,,看来还不“搞掂”?!一边暗笑,一边在fwrite($f,$content)前加入iconv("GB2312","UTF-8",$content)
刷新……
吐血,还不行!!PHP傻了吗?!
不甘心之余,忽然想到,是不是把iconv("GB2312","UTF-8",$content)加到fwrite中好点呢?马上尝试之:fwrite($f,iconv("GB2312","UTF-8",$content));
测试……
结果,,嘿,,可想而知啦。。
终于松了口气!有时,真给编程气个半死,呵,,