UTF-8内容Java请求和PHP响应
我从一个java代码向php服务器发送一个请求,然后在服务器端我只是UTF-8内容Java请求和PHP响应,java,php,utf-8,Java,Php,Utf 8,我从一个java代码向php服务器发送一个请求,然后在服务器端我只是echo收到的响应。 所以理论上我会收到我发送的东西。但我在发送UTF-8内容时遇到问题,当我发送阿拉伯语字符时,会收到意外字符。 我的java请求代码: HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC); HttpCo
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(); }
HttpParams HttpParams=new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
超时(毫秒);
HttpConnectionParams.setSoTimeout(httpParams,超时0毫秒);
String requestString=“سلام”;
StringEntity实体=新的StringEntity(请求字符串,“UTF-8”);
entity.setContentType(“应用程序/json”);
实体。setContentEncoding(“UTF-8”);
HttpPost HttpPost=新的HttpPost(uri);
httpPost.setEntity(实体);
setHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
httpPost.setHeader(“接受字符集”、“utf-8”);
ResponseHandler ResponseHandler=新BasicResponseHandler();
HttpClient HttpClient=新的默认HttpClient(httpParams);
字符串responseString=null;
尝试
{
responseString=httpClient.execute(httpPost,responseHandler);
}
捕获(IOE异常)
{e.printStackTrace();}
我的服务器端代码:<?php
echo file_get_contents('php://input');
?>
在这个测试中,我发送字符串“但作为响应,我收到“字符§§
”
我还尝试在php上使用iconv(…)
方法更改字符集,但失败了。
我甚至不知道问题出在客户端或服务器上。有人有帮助的想法吗?回答我自己的问题:
在我的例子中,问题出在服务器端。我更改了服务器响应的标题,问题已解决:
标题('Content-Type:application/json;charset=utf-8')
可能重复: