私の Android アプリでは、ソケットを使用して応答で XML を取得しています。私が取得するXMLは次のとおりです。
<response>
<result>
<id>90</id>
<name>J�nna</name>
</result>
</response>��
以下は、応答を取得するためのコードです。
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()) ) ;
BufferedReader reader = new BufferedReader( new InputStreamReader( socket.getInputStream(), "UTF-8") );
writer.write(sMessage);
writer.flush();
StringBuilder sb = new StringBuilder();
boolean dataStreamStarted = false;
int sleepCounter = 0;
int sleepMaxCounter = 50;
int sleepMaxDataCounter = 3;
int sleepTime = 50;
long startTime = System.currentTimeMillis();
while( true )
{
if ( reader.ready() )
{
sb.append( (char) reader.read() );
dataStreamStarted = true;
}
else
{
Thread.sleep( sleepTime );
if ( dataStreamStarted && (sleepCounter >= sleepMaxDataCounter) )
{
break;
}
else
{
if (sleepCounter >= sleepMaxCounter)
{
break;
}
}
sleepCounter++;
}
}
long endTime = System.currentTimeMillis();
writer.close();
reader.close();
socket.close();
response = sb.toString();
次のコードを使用して、この文字列をデコードしようとしました。
String str = URLDecoder.decode(response, "UTF-8");
しかし、違いはありません。文字列はまだ同じように見えます。これらの文字のため、この文字列を解析できません。どうすれば解決できますか?私はたくさん検索しましたが、見つけた解決策はどれもうまくいきませんでした。前もって感謝します。