0

我想使用以下代码将 POST 请求从 android 发送到 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;
}

它会显示类似“只是一个测试□□”的内容

我也试过

mb_convert_encoding ($this->params['form']['sql_query'],"UTF-8")

但问题依旧...

有人可以帮助我吗?谢谢

4

1 回答 1

3

这一直是从 Android 发送 UTF-8 数据的问题。您的代码可以正常工作,只是您必须将您的代码编码StringBase64. 在服务器 PHP 中,您只需将Base64String 解码回来。它对我有用。如果您需要代码,我可以分享。

于 2012-11-30T13:24:33.517 回答