我想在我的Android应用程序中添加搜索功能,但问题是当我将uric参数添加到url例如(“example.com?q=بلد”)时,它会给出null结果。虽然如果我在浏览器中手动添加文本到url它可以正常工作。
InputStream inputStream = null;
String contentAsString = null;
try {
URL url = new URL("example.com?q=بلد");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
inputStream = conn.getInputStream();
contentAsString = readIt(inputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
PHP代码
header('Content-Type: text/html; charset=utf-8');
mysql_select_db($this->get_databaseName(), $this->con);
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
$query="Select * from tbl_posts where post_title=".$_GET['q']";
数据库表字段编码方法是utf8_general_ci
简单来说,我想在url中添加一些阿拉伯语文本作为参数,通过它我可以使用php web服务查询数据库。
答案 0 :(得分:2)
在向服务器发送此类特殊字符时,您需要在URLEncoder.encode(your_input," utf-8")的帮助下编码此类输入,并在接收此类数据时首先需要在URLDecoder.decode的帮助下解码它(your_data," utf-8")
答案 1 :(得分:0)
我认为你必须在发送之前对你的查询进行url编码。 像这样:
字符串查询= URLEncoder.encode(“بلد”,“utf-8”);
网址网址=新网址(“example.com?q=”+查询);
答案 2 :(得分:0)
我在Zesshan khan回答的帮助下解决了这个问题
最终代码是
String str=بلد;
str=URLEncoder.encode( str, "utf-8")
URL url = new URL("example.com?q= "+str);
header('Content-Type: text/html; charset=utf-8');
...
mysql_select_db($this->get_databaseName(), $this->con);
mysql_query("SET NAMES 'utf8'");
。
$result=uldecoder($_GET["data"]);
。
$query="Select * from tbl_posts where post_title=".$result.";