php access以汉语言作为参数进行数据查询时出现乱码

WBOY
Freigeben: 2016-06-13 12:29:53
Original
884 Leute haben es durchsucht

php access以中文作为参数进行数据查询时出现乱码。
先上代码:

<?php<br />
<br />
include_once("Conn.php");<br />
<br />
$testJSON=array();<br />
$str = trim($_GET['dept']);  <br />
<br />
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";<br />
<br />
echo $mysql; <br />
 <br />
 $rs = $conn->Execute($mysql);<br />
 while(!$rs->EOF) <br />
            { 				<br />
<br />
	$mydept =iconv('gb2312','utf-8',$rs->Fields['dept']->Value);<br />
	$mypro =iconv('gb2312','utf-8',$rs->Fields['pro']->Value);<br />
	$mynote =iconv('gb2312','utf-8',$rs->Fields['note']->Value);<br />
	$mykf =iconv('gb2312','utf-8',$rs->Fields['kf']->Value);<br />
<br />
	echo $mydept;<br />
	<br />
    $testJSON[] = array('dept'=>"".$mydept."","pro"=>"".$mypro."","note"=>"".$mynote."","kf"=>"".$mykf."");   <br />
   	$rs->MoveNext();<br />
      }<br />
  <br />
 foreach ( $testJSON as $key => $value ) { <br />
 <br />
     foreach ( $testJSON[$key] as $key_k => $value_k ) { <br />
        $testJSON[$key][$key_k] = urlencode ($value_k);  <br />
	 }<br />
    }  <br />
   echo urldecode ( json_encode ( $testJSON ) );  <br />
<br />
         /*释放资源*/<br />
         $rs->Close();<br />
      $conn->Close();<br />
      $rs = null;<br />
      $conn = null;<br />
<br />
?> 
Nach dem Login kopieren


如果我在地址栏输入:
http://192.168.0.30:81/fkfs/jsons_a/json_deptchpro.php?dept=办公室
那么就会出现如图的错误,如果参数是英文的就不会。


如果我在地址栏输入:
http://192.168.0.30:81/fkfs/jsons_a/json_deptchpro.php?dept=通用
这时不会出现错误,这个参数得到的结果应该是正确的,但是却不显示任何记录。
问大家,这个该怎么解决,谢谢!$str = iconv('utf-8', 'gbk', trim($_GET['dept']));  
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
$rs = $conn->Execute($mysql);另外
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
为什么是 *
应该
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '%".$str."%'  ";
才对 错误信息显示:出错行是 21 行
请指出 21 行在哪里!
你贴出的代码中,21 行是 echo $mydept;,显然不是的

你对输出的数据做了编码转换(iconv('gb2312','utf-8',$rs->Fields['dept']->Value))
显然页面是 utf-8 的
那么 $_GET['dept'] 也就是 utf-8 的了
据此,你不可能查找到中文相关的结果

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage