我需要从 mysql 数据库中获取一些数据。我正在运行一个 php 脚本来查询数据库、json 编码并打印它。通过服务器中 php 上的 httppost 从我的应用程序中获取结果。我正在从服务器获取所有数据,除了一些包含特殊/非键入字符的条目。例如:“,”对于这些条目我得到null.So 除了用键入的字符(如“”)服务器端替换这些字符之外......有什么办法可以让这些数据与这些字符一起显示在应用程序上。谢谢。
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(KEY_121);
//httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("cxxn", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("convt", "Error converting result "+e.toString());
}
结果对于具有特殊字符的那些数据具有空值。我应该更改我正在使用的编码吗..?编辑:MySQL 字符集是:UTF-8 Unicode (utf8)
<?php
mysql_connect("","","");
mysql_select_db("fdict");
$q=mysql_query("SELECT (Id), (WD), (des), (udte) FROM `dict`");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
这是我的服务器端php代码。已经删除了服务器地址,通过。带有特殊字符的数据似乎只有在json_encode()之后才变为空。sql查询结果的回显显示没有任何空值的正确数据。有人请帮忙这个。我能做什么..?我有什么选择..?
谢谢。