ようこそすべてUTF-8でInputStreamを読み取る方法は?
私はJavaのアプリケーションを開発しています。これはインターネットからPHPに呼び出され、XML応答を返します。
レスポンスには "Próximo"が含まれていますが、XMLのノードを解析して文字列変数への応答を取得するときに、 "Pr & oacute; ximo" 。
私は問題が私はJavaアプリケーションで別のエンコーディングを使用してPHPスクリプトのエンコーディングを使用していると確信しています。次に、私はあなたのPHP xml、UTF-8と同じエンコーディングを設定する必要があります。
これは私がPHPからXMLファイルを取得するために使用しているコードです。
¿エンコードをUTF-8に設定するには、このコードを変更する必要がありますか? あなたのInputStream
がそれからbyte[]
のを読んで取得するとき
InputStream in = null;
String url = "http://www.myurl.com"
try {
URL formattedUrl = new URL(url);
URLConnection connection = formattedUrl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setAllowUserInteraction(false);
httpConnection.setInstanceFollowRedirects(true);
httpConnection.setRequestMethod("GET");
httpConnection.connect();
if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK)
in = httpConnection.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(in);
doc.getDocumentElement().normalize();
NodeList myNodes = doc.getElementsByTagName("myNode");
あなたはそれがエンコーディングの問題だと確信していますか?ウェブブラウザでPHPコンテンツをテストしましたか?ソースXMLにはエスケープ文字が含まれていると思います! –
あなたはここで別の質問をしました:http://stackoverflow.com/questions/11494069/problems-parsing-spanish-characters-a-e-i-u-from-xml-response 答えは@kgbからです。これはエンコーディングの問題ではありません。 xmlの内容はいくつかのhtmlデータであり、そのデータはエスケープされたようです。あなたはそれをエスケープする必要があります。次のリンクは、HTMLがいくつかの特殊文字をエスケープする方法を示しています。http://www.thesauruslex.com/typo/eng/enghtml.htm –