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(...)
たが、失敗しました。
問題がクライアントまたはサーバーにあることさえ知りません。誰にも助けのアイデアはありますか?