0
 <?xml version="1.0" encoding="UTF-8"?>

意味があると思われるコードの抜粋をいくつか載せます。

次のようなhttpリクエストを介して、1つのxmlからいくつかの情報を読み取っています。

        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        xml = EntityUtils.toString(httpEntity);

文字列xmlを画面に出力すると、すでに成文化に問題があることがわかります

次に、ドキュメントを返すためにこれを持っています

        Document doc = null;
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        DocumentBuilder db = dbf.newDocumentBuilder();

        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));

        doc = db.parse(is); 

http リクエストから情報を正しく取得していますが、データを表示しているときに文字のエンコンディングに問題があります。

私はすでにis.setEncoding("UTF-8")をやろうとしましたが、うまくいきませんでした。

4

1 に答える 1

4

問題は、xml を文字列 (文字) に変換したことです。そうしないでください (間違ったエンコーディングを使用して xml を破損した可能性があります)。 xml をバイナリ データ (バイト) として扱います

使用することもEntityUtils.toByteArray(OK)、HttpEntity ストリームを直接 xml パーサーに渡すこともできます (理想的)。

于 2013-03-18T14:14:13.717 に答える