Heim  >  Artikel  >  Backend-Entwicklung  >  PHP读取数据库中记录生成XML时,记录中有中文怎么办

PHP读取数据库中记录生成XML时,记录中有中文怎么办

WBOY
WBOYOriginal
2016-06-23 14:15:07749Durchsuche

我希望用PHP的DOM函数生成XML文档,如果文档中有中文就出错,即使用CDATA包含中文也没用,代码如下:
 require('conn.php');
$owen1='学生工作';
header('Content-type:text/xml');
$result=$conn->query("select * from news where BigClassName='$owen1' limit 4");

if ($result)

$dom = new DOMDocument('1.0','UTF-8');
$dom->formatOutput=true;
$rcs = $dom->createElement("rss");

 
while ($row=$result->fetch_assoc()){
//print_r($arr); 
$rc = $dom->createElement("channel");
    $mydate=$dom->createElement("title");
    $myname = $dom->createElement("link");
   
    $mydescription=$dom->createElement("description");
 $myhp=$dom->createElement("item");
 $date=$row['title'];
    $datetext = $dom->createTextNode('');
    $mydate->appendChild($datetext);
    $nametext=$dom->createTextNode($name);
    $myname->appendChild($nametext);
    $hptext=$dom->createTextNode($hp);
    $myhp->appendChild($hptext);
    $descriptiontext=$dom->createTextNode($description);
    $mydescription->appendChild($descriptiontext);
    $rcs->appendChild($rc);
    $rc->appendChild($mydate);
    $rc->appendChild($myname);
    $rc->appendChild($myhp);
    $rc->appendChild($mydescription);


  $dom->appendChild($rcs);
     echo $dom->saveXML();     


执行,就提示在最新动态这遇到不合格式的字符,要怎么改啊


回复讨论(解决方案)

补充下,我这个PHP文件编码是gb2312的

写入 XML 的要用 utf-8 编码的数据
两个方案:
1、在你的代码中就从数据库中读出的数据都用 iconv 函数转码
$date = iconv('gbk', utf-8', $row['title']);
$datetext = $dom->createTextNode(iconv('gbk', utf-8', ''));
其他类同

2、直接从数据库中读取 utf-8 编码的数据
$conn->query("set nemes utf8");
$owen1 = iconv('gbk', utf-8', '学生工作');
其他都不变

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 中的“新”字Nächster Artikel:如何停止php执行