热搜:NVER node 开发 php

PHP编程 网页上获取不了中文 都是?,但是phpadmin里数据库显示中文

2024-09-05 16:15:01
PHP编程 网页上获取不了中文 都是?,但是phpadmin里数据库显示中文

<?php
$conn = mysql_connect("localhost","root","1234") or die("不能连接数据库服务器:".mysql_connect_errror());
mysql_select_db("messtest",$conn);
$results = mysql_query("select * from gbbook");
mysql_query($results,$conn);

mysql_query("setnames 'utf8'",$conn);//使用中文编码;
while($row = mysql_fetch_row($results)){
echo $row[0]."".$row[1]."".$row[2]."".$row[3]."".$row[4];
echo"
";
}
mysql_close($conn);
?>


回复讨论(解决方案)

mysql_query("set names 'utf8'",$conn);//使用中文编码;

试过了,没用。
mysql_query("setnames 'utf8'",$conn);//使用中文编码;
mysql_query("setnames 'utf8'",$conn);
mysql_query("set names 'gb2312'",$conn);
mysql_query("set names 'gbk'",$conn);
全都试过,都没用啊!我phpadmin里面用的是gb2312;

将浏览器和php文件都统一为gbk编码,首行加上:
header("content-type:text/html;charset=gbk")

你看看你的mysql安装时的编码格式是什么在(MySQL的安装目录下)my.ini里面找到"default-character-set"(有两处)看假如是latin改为gbk 或者 utf-8,中文支持的编码格式可以是gbk utf-8  
//假如是纯php不包括html代码就加上下面这段代码
header("content-type:text/html;charset=gb2312")或者header("content-type:text/html;charset=gbk")

//如果既有php还包括html代码就只加上下面这段代码

phpmyadmin是会自己调整的,你得确认你的程序是什么编码,你的数据库是什么编码。要统一。

最好确认下你的数据库编码和页面显示编码。编码要一致。

都按上述的改过之后,还是不行,还有其他办法没有,是什么问题???
1.my.ini里面已经将latin改成gbk;
2.数据库我原先用的是gb2312,现在也改成gbk了
3.这段代码页加了 
  
没有用啊,求大神再指教

一般来说。。
1.页面的字符编码
2.数据库的字符编码
3.读取数据库代码设置的字符编码

这三者一致就不会出现问题

你好 我知道你哪里出错了。我此时正碰的你的问题但是我解决了。

你有这么一段:mysql_query("setnames 'utf8'",$conn);//使用中文编码;不仅写错了,而且你只设置了 setnames数据表为 utf8 编码,而不是整个数据库。你应该删除然后加上mysql_query("SET NAMES utf8");在mysql_query($results,$conn);的下面。

我是新手你也是。

我把网页设置为 utf8  但是我的数据库字段设置的是gbk。同样没有出错,能够读取汉子。

页面编码也要改
最前面加上
header("content-type:text/html;charset=utf-8");
数据库加上
mysql_query("set names 'utf8'");

mysql_query("setnames 'utf8'",$conn);//使用中文编码;
这句话应该放在连接数据库后面
$conn = mysql_connect("localhost","root","1234") or die("不能连接数据库服务器:".mysql_connect_errror());
mysql_select_db("messtest",$conn);
mysql_query("setnames 'utf8'",$conn);//使用中文编码;
...
...