ホームページ  >  記事  >  バックエンド開発  >  PHP がデータベースのレコードを読み取って XML を生成するときに、レコードに漢字が含まれている場合はどうすればよいですか?

PHP がデータベースのレコードを読み取って XML を生成するときに、レコードに漢字が含まれている場合はどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:15:07749ブラウズ

PHP の DOM 関数を使用して XML ドキュメントを生成したいのですが、CDATA を使用して中国語を含めてもエラーが発生します。
$owen1=' 学生の作品';
$result=$conn->query("select * from news where BigClassName='$owen1 ' 制限 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("タイトル");
$myname = $dom->createElement("リンク"); ;
$myhp=$dom-> createElement("item");
$date=$row['title'];
$datetext = $dom->createTextNode('');
$mydate- >appendChild($datetext);
$nametext=$dom->createTextNode($name);
$hptext=$ dom->createTextNode($hp);
$myhp->appendChild($hptext);
$mydescription->appendChild($descriptiontext); $rcs->appendChild($rc);
$rc->appendChild($myname);
$rc->appendChild($myhp); ->appendChild($mydescription);

}
$dom->appendChild($rcs);

実行すると、フォーマットされていない文字が存在することを示すプロンプトが表示されます。最新のニュースで見つけた問題を修正するにはどうすればよいですか?


ディスカッションへの返信 (解決策)

さらに、私の PHP ファイルのエンコードは gb2312 です

XML を記述するときは、utf-8 でエンコードされたデータを使用する必要があります
2 つの解決策:
1. コード内のデータベースから読み取られたデータはすべて、iconv 関数を使用してトランスコードされます
$date = iconv('gbk', utf-8', $row['title']);

$datetext = $dom->createTextNode(iconv('gbk ', utf-8', ''));
その他の同様のもの

2. utf-8 でエンコードされたデータを読み取るデータベースから直接

$conn-> query("set nemes utf8");

その他はすべて変更されません


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。