
正文
php读取数据显示问号,php读取doc
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
使用PHP查询数据库,结果当中的中文显示问号
是字符编码问题 mysql字符编码有四个级别 服务器级,数据库级,表级,字段级.前三种均为默认设置,并不代表你的字段最终会使用这三种之一字符集设置,以字段级为准。
无论数据库或者是页面 出现乱码 问号 空白 那基本就是编码不一致的问题。
有两个建议:因为mysql数据库默认的就是utf-8的,如果你是Window系统的话,你可以进入cms命令行对数据库进行修改编码操作命令 set names gb2312,(具体的进入命令行自己到网上查。)linux就简单了,这个就不教了,谁叫linux就是命令的天下呢。
if ($db-server_info()0.1){ db-query(set names gbk2312);或者是GBK } 把IF去掉 补充:输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
print_r($row);改成 print_r($row[]);还有你的下面语句的array最后执行在哪呢?还有就是数据库编码问题 上面的代码可能有问题 下面的echo,是肯定是没问题的。
去MYSQL里面设置,不要在PHP里设置MYSQL的编码,乱码肯定就是编码问题无疑,推荐你先把MYSQL里面表的编码改好,然后再把PHP的编码改好,这样就应该没问题了。
相关问答
Q1: PHP在数据库中显示的是问号
1、因为你mysql中被写入的确实是?,所以无论页面怎么转码都没用的。你insert into时数据的编码要和表字段设置的编码一致,简单的办法是,提交插入语句前加上一句mysql_query(set names gb2312);//假设你的表字段中文编码为gb2312。
2、if ($db-server_info()0.1){ db-query(set names gbk2312);或者是GBK } 把IF去掉 补充:输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
3、因为mysql数据库默认的就是utf-8的,如果你是Window系统的话,你可以进入cms命令行对数据库进行修改编码操作命令 set names gb2312,(具体的进入命令行自己到网上查。)linux就简单了,这个就不教了,谁叫linux就是命令的天下呢。
4、去MYSQL里面设置,不要在PHP里设置MYSQL的编码,乱码肯定就是编码问题无疑,推荐你先把MYSQL里面表的编码改好,然后再把PHP的编码改好,这样就应该没问题了。
Q2: php读取mysql数据库的内容后显示为乱码,中文变成问号怎么办?
1、如果你是Window系统的话,你可以进入cms命令行对数据库进行修改编码操作命令 set names gb2312,(具体的进入命令行自己到网上查。)linux就简单了,这个就不教了,谁叫linux就是命令的天下呢。
2、数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。
3、去MYSQL里面设置,不要在PHP里设置MYSQL的编码,乱码肯定就是编码问题无疑,推荐你先把MYSQL里面表的编码改好,然后再把PHP的编码改好,这样就应该没问题了。
Q3: PHP读取数据库中文全是问号
1、if ($db-server_info()0.1){ db-query(set names gbk2312);或者是GBK } 把IF去掉 补充:输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
2、无论数据库或者是页面 出现乱码 问号 空白 那基本就是编码不一致的问题。
3、因为mysql数据库默认的就是utf-8的,如果你是Window系统的话,你可以进入cms命令行对数据库进行修改编码操作命令 set names gb2312,(具体的进入命令行自己到网上查。)linux就简单了,这个就不教了,谁叫linux就是命令的天下呢。
4、你在数据库连接的时候有没有定义字符集,也就是有没有这句mysql_query(SET NAMES GBK);如果你加上后还是乱码的话。看下页面头部有没有定义字符集。如果问题解决,请采纳。
5、,数据库字段编码问题,一般从页面提交过去的数据都是utf8的,数据库字段编码如是gbk的就会出现这样的问题。2,如果通过命令行进入数据库的话,先执行下set names utf8 然后在查询数据库,试试。
6、从数据库中查询数据并输出显示也有主要三个地方,一个就是上面所说的,二是连接字符集使用例如mysql_query(set name gbk)的语句设定,三是脚本字符集(php脚本的编码),另外有网页编码字符集。这些编码应该一致,尤其是连接字符集与字段字符集。
Q4: php后台接收json字符串为什么出现问号,形式如下
1、这种方式是jq的jsonp,用于跨域回调!在jq里面callback=?当是jsonp时,会将?替换成随机字符串,用于回调时调用。
2、json序列化后末尾出现问号的原因有:非法字符或编码问题:JSON规范要求所有的字符串值必须使用双引号括起来,而不是单引号,在JSON字符串中使用了单引号,则序列化过程中会出现编码问题,导致字符串序列化后末尾出现问号。
3、最简单的方法就是url传递的时候进行加密处理,接收的时候再转换回来,这样就没有乱码了。
4、如需转为数组加上第二个参数为true即可。若仍输出为NULL,是由于存在BOM头信息,复制代码代码如下:$arr=json_decode(trim($json,chr(239).chr(187).chr(191)),true);转换即可。本文全部内容介绍完了,希望对大家在使用PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠中有所帮助。
Q5: php连接MYsql之后,前台显示问号
有两个建议:因为mysql数据库默认的就是utf-8的,如果你是Window系统的话,你可以进入cms命令行对数据库进行修改编码操作命令 set names gb2312,(具体的进入命令行自己到网上查。)linux就简单了,这个就不教了,谁叫linux就是命令的天下呢。
去MYSQL里面设置,不要在PHP里设置MYSQL的编码,乱码肯定就是编码问题无疑,推荐你先把MYSQL里面表的编码改好,然后再把PHP的编码改好,这样就应该没问题了。
你在数据库连接的时候有没有定义字符集,也就是有没有这句mysql_query(SET NAMES GBK);如果你加上后还是乱码的话。看下页面头部有没有定义字符集。如果问题解决,请采纳。
无论数据库或者是页面 出现乱码 问号 空白 那基本就是编码不一致的问题。
以前的国外主机用的Mysql是x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。
if ($db-server_info()0.1){ db-query(set names gbk2312);或者是GBK } 把IF去掉 补充:输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
关于php读取数据显示问号和php读取doc的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





