2013-05-31 123 views
1

如何获取json格式的阿拉伯文字符串以及如何在android应用程序 inputStreamReader中显示。我从服务器端获取json并使用Windows-1256 encodingString转换阿拉伯字符串,但某些文本无法正确显示。在android中使用阿拉伯文字

HttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new HttpGet(url); 
      System.out.println(url + ":::url"); 
      try { 
       HttpResponse httpResponse = httpClient.execute(httpGet); 
       InputStream inputStream = httpResponse.getEntity() 
         .getContent(); 
       InputStreamReader inputStreamReader = new InputStreamReader(
         inputStream,"windows-1256"); 
         //new InputStreamReader(inputStream); 
       BufferedReader bufferedReader = new BufferedReader(
         inputStreamReader,8); 
       StringBuilder stringBuilder = new StringBuilder(); 
       String bufferedStrChunk = null; 
       while ((bufferedStrChunk = bufferedReader.readLine()) != null) { 
        stringBuilder.append(bufferedStrChunk); 
       } 

       return stringBuilder.toString(); 
      } catch (ClientProtocolException cpe) { 
       System.out 
         .println("Exception generates caz of httpResponse :" 
           + cpe); 
       cpe.printStackTrace(); 
      } catch (IOException ioe) { 
       System.out 
         .println("Second exception generates caz of httpResponse :" 
           + ioe); 

       ioe.printStackTrace(); 
      } 
+0

为什么选择Windows-1256?为什么不使用UTF-8? – fge

+0

我使用了“UTF-8”格式,但它将文本显示为正方形格式 – basheer

+1

什么是HTTP标头? JSON通常是UTF-8编码... – fge

回答

1

我一直在[R & d左右一天终于成功解析我阿拉伯JSON响应从服务器使用以下code.So获得,可能会对你有所帮助。

HttpParams params = new BasicHttpParams(); 
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); 
HttpProtocolParams.setContentCharset(params, "UTF-8"); 
params.setBooleanParameter("http.protocol.expect-continue", false); 
HttpClient httpclient = new DefaultHttpClient(params); 

HttpPost httppost = new HttpPost(Your_URL); 
HttpResponse http_response= httpclient.execute(httppost); 

HttpEntity entity = http_response.getEntity(); 
String jsonText = EntityUtils.toString(entity, HTTP.UTF_8); 

Log.i("Response", jsonText); 

现在,使用jsonText为您的进一步要求。

谢谢