发新话题
打印

php读取XML的中文问题

php读取XML的中文问题

我在PHP中使用expat解析XML V1.0(utf8)的内容。 但是遇到中文显示乱码,我在IE中更换编码方式为utf8也不行 使用iconv utf8->gbk 或者 gb2312都不行。 郁闷了一个晚上,偶然的一下,我使用了utf8_decode先处理了下XML来的数据 然后,再使用iconv utf8->gb2312就可以正常显示了 想了半天也搞不懂为什么,看了手册,utf8_decode是把utf8转换成iso啊? 希望高手能不吝赐教,感激,感激! 附: log.php//读取显示xml 日志 '', 'op' => '', 'time' => '', 'op' => '', 'time' => '', 'action'=> '', 'ip'=>'' ); ?> '; } $xml_file = 'Log/log.xml'; $type = 'UTF-8'; $xml_parser = xml_parser_create($type); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false); xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); xml_set_element_handler($xml_parser, 'startElement','endElement'); xml_set_character_data_handler($xml_parser, 'characterData'); if (!($fp = fopen($xml_file, 'r'))) { die("? $xml_file ?~{'_~}!n"); } while ($data = fread($fp, 4096)) { if (!($data = utf8_encode($data))) { echo 'ERROR'."n"; } if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf( "XML error: %s at line %dnn", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?> xml 文件 - - administrator_back 添加会员wqe 192.168.12.237 - administrator_back 登入后台 192.168.12.237 - 创建日志文件 192.168.12.237 - 创建日志文件 192.168.12.237

TOP

发新话题