1

アラビア文字列をjson形式で取得する方法とandroidアプリinputStreamReaderで表示する方法。サーバー側からjsonを取得し、Windows-1256 encodingStringを使用してアラビア文字列を変換しますが、テキストが正しく表示されません。

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();
            }
4

1 に答える 1

1

私は一日中研究開発を行ってきましたが、最終的に次のコードを使用してサーバーから取得したアラビア語の json 応答を解析することに成功しました。

 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 を使用します。

ありがとうございました

于 2014-04-19T10:13:46.370 に答える