作者superGA ()
看板PHP
标题Re: [请益] 转换XML档案编码的问题
时间Thu Nov 30 19:09:00 2006
※ 引述《jimshsu (jims)》之铭言:
: 想请教各位一个问题
: 最近要处理一堆别人建立好的XML档
: 原先以为utf-8格式没问题
: 结果拿到资料就傻眼了~档案是utf-8没错
: 但是所有中文字都变成HTML-ENTITIES
: ex:<title>鴛鴦湖森林</....
: 我原先要把资料读进mysql的
: 而且xml原始档还要可以让人阅读
: 因为有上千笔档案..所以我无法一个个从浏览器贴到剪贴簿
: 请问我要用什麽方式把中文转换成utf-8而且不影响xml的tag?
: 感激不尽
: ************************************测试结果
: 依造superGA建议--我试着这样做..
: $xml_file = "big.xml";(//原始的XML档案.产生档案的软体把中文都变成"HTML-ENTITIES)
: define("out","utf.xml");//输出档案
: $xml_meta = new DomDocument;
: $xml_meta->load($xml_file);
: $t = html_entity_decode($xml_meta->saveXML(),ENT_NOQUOTES,"UTF-8");
: $xml = new DomDocument;
: $xml->loadXML($t);
: $xml->save(out);
: *****************************
: 结果...还是不行
: 上面程式我如果列印$t的结果..在浏览器是中文(因为浏览器自动转换了)
: 但是把那字串输出到档案..我用笔记本打开还是HTML-ENTITIES
: 请问我哪里写错了吗?~~为何html_entity_decode没有作用呢?
echo
html_entity_decode("<title>鴛鴦湖森林</title>");
我的系统ok喔
会出现<title>鸳鸯湖..</title>不知道杀洨的东西
你检查一下版本(PHP 4 >= 4.3.0, PHP 5) 再试试看吧
另外php.net有提到
Note: Any other character sets are not recognized and ISO-8859-1 will be
used instead.
Note: This function doesn't support multi-byte character sets in PHP < 5.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.112.156
1F:推 jimshsu:echo 在萤幕没问题..可是写入的档没有转换过来 11/30 23:34
2F:→ jimshsu:请问写档的方式有误吗? 11/30 23:35
3F:推 jimshsu:解决了...XMLsave似乎有点问题 12/01 00:07
4F:→ jimshsu:改用$fp = fopen("out", "w"); OK!!!! 12/01 00:08