我想通过以下代码将来自android的POST请求发送到utf-8中的PHP应用程序:
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(Site.SQL_QUERY, "just a test 東京"));
UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(params);
urlEncodedFormEntity.setContentEncoding(HTTP.UTF_8);
httppost.setEntity(urlEncodedFormEntity);
HttpResponse response = httpclient.execute(httppost);
BufferedReader reader = new BufferedReader(new inputStreamReader(response.getEntity().getContent(), HTTP.UTF_8));
String result = reader.readLine();
我将编码设置为UTF-8,但字符串中包含的日文字符不能正常显示。
这是我的PHP代码(cakePHP)。我只是转储参数。
function sqlQuery(){
var_dump($this->params['form']['sql_query']);exit;
}
它会显示类似于&#34;只是一个测试□□#34;
我也试过
mb_convert_encoding ($this->params['form']['sql_query'],"UTF-8")
但问题仍然存在......
有人可以帮帮我吗? 谢谢答案 0 :(得分:3)
这是从Android发送UTF-8数据的问题。您的代码可以正常工作,但您必须将String
编码为Base64
。在Server PHP中,您只需将Base64
字符串解码回来。它对我有用。如果您需要代码,我可以分享。