0

Javaコードからphpサーバーにリクエストを送信し、サーバー側でechoレスポンスとして受け取ったものだけを送信します。
したがって、理論的には、送信したものを受信します。しかし、UTF-8 コンテンツの送信に問題があり、アラビア文字を送信すると、予期しない文字が表示されます。
私のJavaリクエストコード:

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
            TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);

String requestString = "سلام";

StringEntity entity = new StringEntity(requestString, "UTF-8");
entity.setContentType("application/json");
entity.setContentEncoding("UTF-8");

HttpPost httpPost = new HttpPost(uri);
httpPost.setEntity(entity);
httpPost.setHeader("Content-Type", "application/json; charset=utf-8");
httpPost.setHeader("Accept-Charset", "utf-8");

ResponseHandler<String> responseHandler = new BasicResponseHandler();
HttpClient httpClient = new DefaultHttpClient(httpParams);
String responseString=null;
try
{
    responseString = httpClient.execute(httpPost, responseHandler);
}
catch (IOException e)
{  e.printStackTrace(); }

サーバー側の私のコード:

<?php
    echo file_get_contents('php://input');
?>

このテストでは、文字列 " سلام" を送信しましたが、応答として " Ø³ÙØ§Ù" を受け取りました。
PHPのメソッドで文字セットを変更する問題も解決しようとしましiconv(...)たが、失敗しました。
問題がクライアントまたはサーバーにあることさえ知りません。誰にも助けのアイデアはありますか?

4

1 に答える 1

0

私自身の質問への回答:
私の場合、問題はサーバー側にありました。サーバーの応答のヘッダーを変更したところ、問題は解決しました。

header('Content-Type:application/json; charset=utf-8');

于 2013-07-25T11:31:49.927 に答える