4

NuSOAP を使用して、データベース クエリの実行や結果の取得など、サード パーティの API とやり取りしています。非常に確実に動作していますが、特定のクエリで問題が発生しました。結果を返す代わりに、NuSOAP はエラーを生成しました。 XML error parsing SOAP payload on line 2: Invalid character

結果セットに次のものが含まれていることが判明しました: Léa Lincoln. アクセント付きの文字を手動で「通常の」文字に変更したところ、クエリは正常に機能し、NuSOAP からのエラーは発生しませんでした。

ですから、私の質問は、これを今後どのように処理するかです。データベースからのデータを制御することはできません。NuSOAP がエラーをスローして非標準文字があるたびに停止しないようにする必要があります。ありがとう。--ジェフ

4

2 に答える 2

5

検索とテストの結果、CAZypedia の乗組員によるハッキングが解決策だったようです。

function nusoap_parser($xml,$encoding='UTF-8',$method='',$decode_utf8=true){
    parent::nusoap_base();

    // Hack by CAZypedia crew to fix character encoding of NCBI XML data from SOAP
    // This prevents non-English characters from causing the parser to choke.
    $xml = iconv("ISO-8859-1", "UTF-8//TRANSLIT", $xml);
    // End hack.
    $this->xml = $xml;
    $this->xml_encoding = $encoding;
    $this->method = $method;
    $this->decode_utf8 = $decode_utf8;

リンク: http://sourceforge.net/projects/nusoap/forums/forum/193579/topic/3718945

于 2012-06-22T22:38:21.317 に答える