php数据库中的中文数据在页面上显示的是问号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php数据库中的中文数据在页面上显示的是问号相关的知识,希望对你有一定的参考价值。
在myphpadmin上插入了中文数据(数据库,表绝对是UTF-8编码的),在页面里也写上了那几句转换的编码,该写的我都写了,昨天查了一下午.....页面上的编码和数据库上的编码都是UTF-8,还是问号。我用得是wampserver集合环境和designer 7写的,之前在别的电脑上没有出现这个问题,换了台电脑就不行了,求助!就是一个很简单的代码:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body></body></html>
<?php
header("Content-Type:text/html; charset=UTF-8");
//header("content-type: text/html;charset=utf-8");
@mysql_connect("localhost","root","") or die("mysql连接失败");
@mysql_select_db("ghp") or die("db连接失败");
mysql_set_charset("UTF-8");
mysql_query("set names 'utf-8'");
$sql = "select * from aaa";
$aaa = mysql_query($sql);
$rows = mysql_numrows($aaa);
if($rows>0)
while($rs=mysql_fetch_array($aaa))
echo $rs['name'];
?>
另外QQ727718849 真心求帮助,都已经抓狂了
第一种方法:在浏览器菜单栏中选择“查看”->编码->自动选择(或者utf8);
第二种,看看你写代码的软件中的编码类型选择了么 ,我用的是EditPlus,所以在右下角那个地方有一个utf8有时候出现你说的情况就是因为utf8变成了ANSI,双击它可以选择其他编码。希望可以帮到你
参考技术A 肯定是编码问题,首先你必须吧数据库的编码还有文件的编码还有代码里的编码还有浏览器的编码都统一才可以,你的代码里是utf-8那就统一弄成utf-8的 参考技术B CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
数据库设置为utf8还不行,在建立表的时候要像上面这样加上DEFAULT CHARSET=utf8
这回不会有乱码了。追问
试了不行。数据库页面文件浏览器我都设成utf-8了,是不是其他的问题
追答你按照我的说法,把旧的数据表删了,按照我的说的新建数据表
参考技术C 你就在浏览器上 右键 编码 选择utf-8 试试,看看是否可以正确显示;有时候 自动选择也不准确;为啥我的VS2010数据库输入的中文显示问号是怎么回事啊
写注册页面时,数据库接收到的中文全是问号,在页面显示出来的也是问号。。
哪位高手,帮帮忙啊
解决办法:
删除所有的输入法(包括美式键盘),只留下用的那个输入法比如搜狗,google等。只留一个,就好了。 参考技术A 第一种:
把你数据库的列类型改成 nvarchar 类型的,然后往数据库insert数据的时候前面要加一个N
如:insert into table1 values(N‘小明’) 。这样读出来的时候就不是乱码了。
第二种:
在页面head标签里写上
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />追问
第二种方法无效,数据库中只要是中文的还是问号,第一种有效,一直是nvarchar 类型,但是我是注册页面啊,用户名有时是中文有时是英文,加个N,不是办法呀。。。都不知道是什么问题了
追答那个部分中文和 英文, 都加N就可以了。 不会出乱码
哪国语言都一样 前面加N就可以了
我知道是这两个问题,可是要怎么做呢?大侠,有招没?
以上是关于php数据库中的中文数据在页面上显示的是问号的主要内容,如果未能解决你的问题,请参考以下文章