-3

何が問題になっているのかわかりません。同じスクリプトを使用して別のXMLを取得していましたが、問題なく機能していました。これはスクリプトです:

<?php
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"LATIN-1\"?>";
echo "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">";
echo "<plist version=\"1.0\">";

function getXML($sql="SELECT IDCargo FROM database.table"){

    $conn   = mysql_connect ("myserverurl.com", "user", "psw");
    $db     = mysql_select_db("database");
    $result = mysql_query($sql, $conn);
    $column = "";
    echo "<array>";

    while($row = mysql_fetch_assoc($result)){
        $column .= "<dict>";
        foreach ($row as $key => $value){
            $column .= "<key>$key</key>";
            $column .= "<string>$value</string>";
        }
        $column .= "</dict>";
    }

    echo $column;
    echo "</array>";
    echo "</plist>";
}
getXML("SELECT IDCargo as ID_CARGO, SequencialDoCandidato as NUMERO_SEQ_CANDIDATO, NomeDoCandidato AS NOME_CANDIDATO, NumeroDoCandidato as NUMERO_CANDIDATO, NomeDoPartido AS SIGLA_PARTIDO, Estado as SIGLA_ESTADO,IDUnidadeEleitoral AS ID_CIDADE_CANDIDATO, UnidadeEleitoral AS CIDADE_CANDIDATO FROM database.table");
mysql_close();
?>

このエラーが発生します:

This page contains the following errors:

error on line 1 at column 538: Encoding error
Below is a rendering of the page up to the first error.

ID_CARGO11NUMERO_SEQ_CANDIDATO10000002965NOME_CANDIDATOAGRECINO DE SOUSANUMERO_CANDIDATO13SIGLA_PARTIDOPTSIGLA_ESTADOACID_CIDADE_CANDIDATO1120CIDADE_CANDIDATO

誰かが何かを見ることができますか?ここで助けてください。正常に機能しているスクリプトからスクリプトを取得しました。

4

2 に答える 2

1

私があなたのコードを読んだら、私は見ることができます:

echo "<?xml version=\"1.0\" encoding=\"LATIN-1\"?>";

したがって、LATIN-1文字セットを出力したいと思います。この文字セットはどこでも指定する必要があります:

1/httpヘッダーでエンコーディングを指定してみてください。

header("Content-type: text/xml; charset=ISO-8859-1");

2 /また、DBクライアントで文字セットを設定することもできます。

mysql_set_charset('latin1', $db);
于 2012-09-19T18:32:32.017 に答える
0

出力には、デフォルトのエンコーディングでサポートされていないエンコーディングの1つまたは複数の文字が含まれている可能性があります。

使用するエンコーディングを更新するか、エンコーディングに適合しない文字をエスケープしてください。php関数はhtmlentities良いスタートです。

于 2012-09-19T18:37:36.660 に答える