0

我正在为班级做作业,我必须使用在 Tomcat 上运行的 Java Servlet 并让它向一个 php 文件发送消息以从 IMDB 中抓取电影信息并将其作为 XML 返回给 servlet。它似乎不想接受我给它的任何编码,因为我不断获得 XML 标记,如下面的标记。

      <result cover="url" title="Pok&#xE9;mon" year="1998 TV Series" director="N/A" rating="7.8" details="http://www.imdb.com/title/tt0176385/"/>

口袋妖怪的标题应该在 e («é») 上带有重音。我有以下 php 代码来生成 xml。(仅重要部分)

    <?php header("Content-Type: text/xml; charset=utf-8");
    $xml = new DOMDocument();
    $rsp = $xml->appendChild($xml->createElement("rsp"));
    $xml->encoding = 'utf-8';

    $titleNames[$i] = utf8_encode($title_tmp[1]);

    $results = $rsp->appendChild($xml->createElement("results"));
    $results->setAttribute("total", $tableRows);

    $item->setAttribute("title", $titleNames[$i]);

    echo $xml->saveXML();
    ?>

在弄清楚如何正确显示特殊字符方面的任何帮助将不胜感激!

4

1 回答 1

0

不可能从您的代码片段(甚至不运行)中说出什么问题,但$xml->encoding = 'utf-8'应该可以工作。请比较:

$xml = new DOMDocument();
$rsp = $xml->appendChild($xml->createElement("rsp"));
$rsp->setAttribute("title", 'Pokémon');
echo $xml->saveXML();
/*
<?xml version="1.0"?>
<rsp title="Pok&#xE9;mon"/>
*/

... 和:

$xml = new DOMDocument();
$xml->encoding = 'utf-8';
$rsp = $xml->appendChild($xml->createElement("rsp"));
$rsp->setAttribute("title", 'Pokémon');
echo $xml->saveXML();
/*
<?xml version="1.0" encoding="utf-8"?>
<rsp title="Pokémon"/>
*/

(这些片段预计将保存为 UTF-8)。

于 2012-11-13T09:15:52.070 回答