从android到PHP的POST请求

时间:2012-07-02 02:34:50

标签: php android cakephp http-post mojibake

我想通过以下代码将来自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")

但问题仍然存在......

有人可以帮帮我吗? 谢谢

1 个答案:

答案 0 :(得分:3)

这是从Android发送UTF-8数据的问题。您的代码可以正常工作,但您必须将String编码为Base64。在Server PHP中,您只需将Base64字符串解码回来。它对我有用。如果您需要代码,我可以分享。