使用php+XML开发WAP站点,数据来源XML用PHP读取然后生成一个WAP页面但是总存在乱码,请大家帮忙看看
XML:<?xml version="1.0" encoding="GB2312"?>
<hotFirstHand>
<Content filename="/home/web/xml/property/322.xml" retrieval_date="20061223" />
<PropertyPhoto BigFace="../property/property_image/shenzhen/322/BigFace.jpg" BigTraffic="../property/property_image/shenzhen/322/BigTraffic.jpg" SmallFace="../property/property_image/shenzhen/322/SmallFace.jpg" SmallTraffic="../property/property_image/shenzhen/322/SmallTraffic.jpg"/>
<PropertyInfo name="书香门第" district="深圳">

<Parameter name="物业名称:" value="兴和" /> <Parameter name="物业地址:" value="深圳市龙华镇梅林关口" /> <Parameter name="投资商:" value="深圳市投资发展有限公司" /> <Parameter name="发展商:" value="深圳市发展有限公司" /> <Parameter name="物业管理:" value="-" /> <Parameter name="物业座数:" value="-" /> <Parameter name="车位总数:" value="-" /> <Parameter name="占地面积:" value="-" /> <Parameter name="建筑面积:" value="3761.24平方米" /> <Parameter name="实用面积:" value="3456.66平方米" /> <Parameter name="绿化率:" value="-" /> <Parameter name="装修标准:" value="-" /> <Parameter name="管理费用:" value="-" /> <Parameter name="配套设施:" value="-" /> <Parameter name="交通状况:" value="-" /> <Parameter name="开发状况:" value="-" /> <Parameter name="销售许可证:" value="-" /> <Parameter name="开业日期:" value="2006-12-23" /> <Parameter name="入伙日期:" value="-" /> <Parameter name="物业优点:" value="书香门第.财富街" /> </PropertyInfo>
<ContactInfo>
<Contact HKFax="-" HKEmail="-"  HKHotline="-" ChinaEmail="-" ChinaFax="-" ChinaHotline="755-28068888"/>
</ContactInfo>
</hotFirstHand>使用PHP phplib建立一个WAP页面
header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"
\"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");
echo"<wml>";
include_once("../include/template.php");
include_once("../include/xmlize.php");
include_once("../include/function.php");
$id = $_GET["id"];
$file = "/home/web/xml/property/".$id.".xml";
$handler = fopen($file,"r");
$xmlfile = fread($handler,filesize($file));
$xml = xmlize($xmlfile);
$hotFirstHand = $xml["hotFirstHand"]["#"];
$PropertyInfo = $hotFirstHand["PropertyInfo"];
$PropertyName = iconv("gb2312","utf-8",$PropertyInfo[0]["@"]["name"]);
$city = iconv("gb2312","utf-8",$PropertyInfo[0]["@"]["district"]);
$Invest = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][2]["@"]["value"]);
$develop = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][3]["@"]["value"]);
$manage = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][4]["@"]["value"]);
$num = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][5]["@"]["value"]);
$carnum = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][6]["@"]["value"]);
$area = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][7]["@"]["value"]);
$buildarea = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][8]["@"]["value"]);
$userarea = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][9]["@"]["value"]);
$lv = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][10]["@"]["value"]);
$fitment = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][11]["@"]["value"]);
$mfee = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][12]["@"]["value"]);
$pt = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][13]["@"]["value"]);
$traffice = iconv("gb2312","utf-8//IGNORE",$PropertyInfo[0]["#"]["Parameter"][14]["@"]["value"]);
$data = iconv("gb2312","utf-8",$PropertyInfo[0]["#"]["Parameter"][17]["@"]["value"]);
$adventage = trim($PropertyInfo[0]["#"]["Parameter"][19]["@"]["value"]);
$adventage = iconv("gb2312","utf-8//IGNORE",$adventage);
$t = new Template("./");
$t->set_file("HdIndex","citymore.wml");
$t->set_var(array("city"=>$city,
                  "Invest"=>$Invest,
  "develop"=>$develop,
  "manage"=>$manage,
  "num"=>$num,
  "PropertyName"=>$PropertyName,
  "carnum"=>$carnum,
  "area"=>$area,
  "buildarea"=>$buildarea,
  "userarea"=>$userarea,
  "lv"=>$lv,
  "fitment"=>$fitment,
  "mfee"=>$mfee,
  "pt"=>$pt,
  "traffice"=>$traffice,
  "data"=>$data,
  "adventage"=>$adventage));
$t->parse("Output","HdIndex");
$t->p("Output");
echo "</wml>";WAP模板是一个XML
<card id="main" title="{city}-{PropertyName}">
<p>
【物业名称】:{PropertyName}<br />
【投资商】:{Invest}<br />
【发展商】:{develop}<br />
【物业管理】:{manage}<br />
【物业座数】:{num}<br />
【车位总数】:{carnum}<br />
【占地面积】:{area}<br />
【建筑面积】:{buildarea}<br />
【使用面积】:{userarea}<br />
【绿化率】:{lv}<br />
【装修标准】:{fitment}<br />
【管理费用】:{mfee}<br />
【配套设施】:{pt}<br />
【交通状况】:{traffice}<br />
【开业日期】:{data}<br />
【物业优点】:{adventage}<br />
</p>
<p align="center">
<anchor> [返回上一页] <prev /> 
</anchor>
</p>
</card>但PHP生成的WAP结果中总是有乱码存在,大家帮忙看看

解决方案 »

  1.   

    一个是UTF8,一个是GB2312 
    当然会乱码了.
      

  2.   

    可以我是通过iconv将XML里面的转成UTF-8的了
      

  3.   

    你的模拟器或手机浏览你的wap页面是什么编码形式了,它不会根据你的wap页面自动转的,要设置的。
      

  4.   

    WAP模板文件内码是UTF-8的,输出文本之后在物业优点之后会有一点乱码
      

  5.   

    这里是说碰到错误就忽略后面的字符串吧。
    iconv("gb2312","utf-8//IGNORE",$adventage);
    看看是不是 //IGNORE 这个附加参数的问题或者改用mb_convert_encoding试试呢呢
      

  6.   

    效果一样 应该不是//IGNORE的问题