从mysql数据库读出的数据怎么是问号(?)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从mysql数据库读出的数据怎么是问号(?)相关的知识,希望对你有一定的参考价值。

刚开始学php+mysql,写了个程序连接mysql在页面上度数据库内容时有时显示问号,即(????)这样,数据库中的内容是汉字非问号,读数据的页面有时会显示中文汉字,有时显示问号,如果显示问号的话多刷新几下页面的话,也会变成汉字页面,但是页面经常显示问号,这是哪里的问题?请最好不要从网上copy答案。。。

参考技术A 解决方案:
在代码里,在执行select语句之前,加上
mysql_query("set
names
'utf8'");
注意,mysql数据库也要设置utf8,浏览器显示和文件类型都设置为utf-8
设置utf8原因:
UTF-8(8-bit
Unicode
Transformation
Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken
Thompson于1992年创建。现在已经标准化为RFC
3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

为啥我的VS2010数据库输入的中文显示问号是怎么回事啊

写注册页面时,数据库接收到的中文全是问号,在页面显示出来的也是问号。。
哪位高手,帮帮忙啊

用VS2010及以上版本(2008未测试),偶尔会出现编程时输入中文变成问号。
解决办法:
删除所有的输入法(包括美式键盘),只留下用的那个输入法比如搜狗,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就可以了

本回答被提问者和网友采纳
参考技术B 数据库字符问题,或者是网站程序连接字符问题追问

我知道是这两个问题,可是要怎么做呢?大侠,有招没?

以上是关于从mysql数据库读出的数据怎么是问号(?)的主要内容,如果未能解决你的问题,请参考以下文章

python从数据库中获取utf8格式的中文数据输出时变成问号或乱码

解决Linux系统下Mysql数据库中文显示成问号的问题

急,急,急,PHP从数据库中读取的内容都是问号,这是怎么回事

急求:PHP 中文写入数据库中文是问号,怎么解决

部分中文插入mysql数据库变成问号,怎么回事

如何利用redis从数据库读出数据