[已解决]用PHP创建XML文件出现中文乱码

[已解决]用PHP创建XML文件出现中文乱码


我的代码:
<?php
ini_set("default_charset","gb2312");
header("Content-Type:text/xml");
mysql_connect("localhost","root","1145144");
mysql_select_db("city");
mysql_query("set names gb2312");
$sql1 = "select * from city_name;";
$result1 = mysql_query($sql1)or die(mysql_error());
$dom = new DOMDocument('1.0');
$city = $dom->createElement("city");
$dom->appendChild($city);
while($row = mysql_fetch_row($result1)){
        $id = $dom->createElement("id");
        $idvalue = $dom->createTextNode($row[0]);
        $id->appendChild($idvalue);
        $pid = $dom->createElement("pid");
        $pidvalue = $dom->createTextNode($row[1]);
        $pid->appendChild($pidvalue);
        $cityname = $dom->createElement("cityname");
        $cityvalue = $dom->createTextNode($row[2]);
        $cityname->appendChild($cityvalue);
        $city->appendChild($id);
        $city->appendChild($pid);
        $city->appendChild($cityname);
}
$str = $dom->saveXML();
echo $str;
?>

============================================================================================
我的数据库:
CREATE TABLE `city_name` (
  `id` int(10) NOT NULL auto_increment,
  `pid` int(10) NOT NULL,
  `cityName` varchar(30) character set gb2312 NOT NULL,
  PRIMARY KEY  (`id`)
)

INSERT INTO `city_name` VALUES (1, 1, '南京');
INSERT INTO `city_name` VALUES (2, 1, '苏州');
INSERT INTO `city_name` VALUES (3, 1, '无锡');
INSERT INTO `city_name` VALUES (4, 1, '常州');

=====================================================================================
我的显示结果
  <?xml version="1.0" ?>
- <city>
  <id>1</id>
  <pid>1</pid>
  <cityname>??</cityname>
  <id>2</id>
  <pid>1</pid>
  <cityname>??</cityname>
  <id>3</id>
  <pid>1</pid>
  <cityname>??</cityname>
  <id>4</id>
  <pid>1</pid>
  <cityname>??</cityname>
  </city>

页面的字符编码手动不能修改
这个问题怎么办??
高手支招
:'(:'(

[ 本帖最后由 manx00 于 2008-7-17 08:36 编辑 ]

RE

这个问题也困扰我多日,最后我是这么处理的:
在createtextnode时用iconv处理,
$strText = $dom->createTextNode(iconv("gb2312","utf-8",$str));

结果OK

上面哥们真是好样的,貌似这个在什么情况下都可以用的
谢谢了!

恩 字符集的问题