【发布时间】:2011-03-15 21:40:08
【问题描述】:
我的应用程序的一部分在 mysql 数据库上执行查询(通过 php)。我在数据库中使用 UTF-8,因为我有需要出现的字母 é à ê。 我通读了这个问题,因为这看起来几乎一样。
Android Java UTF-8 HttpClient Problem
但是,当我实现代码时,他将每个返回值替换为 é 作为 null。
这是我的代码
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
params.setBooleanParameter("http.protocol.expect-continue", false);
HttpClient httpclient = new DefaultHttpClient(params);
HttpPost httppost = new HttpPost("http://www.example.com/example.php");
httppost.setEntity(new UrlEncodedFormEntity(query));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
String jsonText = EntityUtils.toString(entity, HTTP.UTF_8);
Toast.makeText(StoresInfo.this, jsonText, Toast.LENGTH_LONG).show();
is = entity.getContent();
因此,在 jsonText 字符串中,他将返回值替换为 null。
最后一行是 = entity.getConent();我添加这个是因为我通常使用输入流来读取它,但这也不起作用。
有人有想法吗?
这是我的 php 代码
<?php
mysql_select_db("database");
$q=mysql_query($_REQUEST['query']);
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
【问题讨论】:
-
你确定你的网页界面是 UTF-8 的吗?
-
什么意思?这是我的 php 代码...
-
您的 PHP 界面是否为您提供 UTF-8 内容而不是其他编码?
-
在 mysql 中,我使用的是带有 utf8_bin 的 varchar。
-
我试图通过回显它来输出它,它向我显示了字母是...如果这是您问题的答案:-)