我从 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(...)
但我失败了。
我什至不知道问题出在客户端还是服务器上。有没有人有帮助的想法?