Home > Backend Development > PHP Tutorial > php select查询时,字符编码处理,

php select查询时,字符编码处理,

WBOY
Release: 2016-06-23 14:38:24
Original
969 people have browsed it

require("db.php");
$sql="SELECT `cityid` FROM `weathercityid` where `city`='广东'";
$result=mysql_query($sql);
var_dump($result);
$a_city=mysql_fetch_array($result);
print_r($a_city);
?>
输出结果为
广东
resource(5, mysql result)
 
 如果把 把广东换成是 数字是字符就可以成功,这个是怎么回事?


回复讨论(解决方案)

你的程序是什么编码的?
你的 city 字段是什么编码的?

以下是几种可能的情况
1、程序是 gbk 的,city 是 utf8 的 需要在查询前 mysql_query(/set names gbk');
2、程序是 utf-8 的,city 是 gbk 的 需要在查询前 mysql_query(/set names utf8');
3、最坏的情况:city 没有设置编码,且程序是 utf-8 的
此时需要 
$w = iconv('utf-8', 'latin1', '广东');
$sql="SELECT `cityid` FROM `weathercityid` where `city`='$w'";

取回的数据还需反编码

你这不是输出了吗,怎么不成功了? 

楼主问题,说的很深奥啊。

把文件另存为utf-8,mysql查询的时候设置mysql_query('set names utf8');
mysql识别不了编码所以查不出

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template