0

アクセスできず、エンコーディングがわからない外部サーバーから情報を読み取っていますí。私がしているのは、以下のコードを使用した POST リクエストであり、その後、それを解析します。

String response = "";
URL url = new URL(pURL);
URLConnection uc = url.openConnection();
if (sid!=null) uc.setRequestProperty("Cookie", sid);
uc.setDoOutput(true);
OutputStreamWriter osw = new OutputStreamWriter(uc.getOutputStream());
osw.write(request);
osw.flush();
InputStreamReader isr = new InputStreamReader(uc.getInputStream(), "UTF8");
BufferedReader br = new BufferedReader(isr);
String content;
while ((content = br.readLine())!=null){
  response += content;
}
br.close();
osw.close();

この時点で、表示される文字列を出力すると、表示\\されるí代わりに が\u00ed表示\\\u00edされ、応答文字列を char 配列に変換すると、正しく変換されるのではなく、6 chars に分割されていることがわかります\\\\, u, 0, 0, e, d

InputStreamReader のエンコーディングを変更して、文字と一部の正規表現を置き換えようとしましたが、どれも機能しませんでした。誰かがこの問題を抱えていて、私を助けることができますか?

どうもありがとうございました。

4

2 に答える 2

1

応答がそのようにフォーマットされている理由はわかりませんが、次のように文字列\u00edíusingに変換できます。StringEscapeUtils

String input = "\\u00ed";
String unescaped = StringEscapeUtils.unescapeJava(input);
System.out.println(unescaped);

出力:

í
于 2012-08-24T12:30:08.930 に答える
0
response.replaceAll("\\","\");
于 2012-08-24T12:43:09.863 に答える