PHP乱码 mysql_query("set names GBK")不能解决问题
发布网友
发布时间:2024-09-26 08:19
我来回答
共5个回答
热心网友
时间:2024-11-14 04:54
一:连接数据库的时候就设置.
$mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname) or die("Can not connect to the database because:".mysqli_connect_error());
//设置返回数据的字符编码!
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
;//negnect
//printf("Current character set: %s\n", $mysqli->character_set_name());
}
然后:在网页上也设置.
如第一个回答.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
热心网友
时间:2024-11-14 04:54
<?php
$conn=@mysql_connect("localhost","root","123456")or die("链接错误");
mysql_select_db("mydb",$conn);
$sql="SELECT * FROM `test`";
mysql_query("set names 'utf8'"); //这里是关键 不能写在第一行 里面要用utf8 不要用utf-8
$query=mysql_query($sql,$conn);
while($a=mysql_fetch_array($query)){
echo $a[remark]."<br><br>";
}
?>
热心网友
时间:2024-11-14 04:55
你的$conn 是实例化了某个类(上面的代码里我看不到)
例子: $conn = new ???; //我假设是a
mysql_query("set names gbk");应该放在类a 里的 query函数最前. 不是你调用的时候来个 $conn->query("............");
热心网友
时间:2024-11-14 04:55
这个只是从数据库过来的时候是转码了,不能保证显示的时候也是对的。
你试下改这个 <meta http-equiv="Content-Type" content="text/html; charset=XXXX" />
热心网友
时间:2024-11-14 04:56
mysql_query("set names gbk",$connect);