PHP读取数据库中文全是问号

Posted

tags:

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

网页中的中文全是问号,网页的编码是GB2312,数据库的编码是GBK,数据库中的数据是正常的,但是显示在网页上就全变成问号了。
<?php
ini_set('date.timezone','Asia/Shanghai');
$serverName = 'xxx'; //mysql数据库服务器ip
$dbUserName = 'xxx'; //数据库用户名
$dbUserPassowrd = 'xxx';//密码
$dbName = 'xxx'; //数据库名称
$db=new mysql($serverName,$dbUserName,$dbUserPassowrd);
if ($db->server_info()>'5.0.1')

$db->query("set names 'gbk'");

$db->SelectDB($dbName);
?>

1楼的办法没用。。。这个程序我在本机测试的时候没有出现这种问题,上传到主机里就出问题了。

2楼办法感觉应该有用。。。可是还是乱码

很可惜,3楼的回答也没有帮助。。。

if ($db->server_info()>'5.0.1')

$db->query("set names gbk2312");或者是GBK


把IF去掉

补充:
输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
参考技术A mysql_query("SET NAMES 'GB2312'",$MySQLConnection); 参考技术B 首先,你在读取的页面上的html中需要加入字符编码,在head中加入,比如我们加入的是utf-8型的,那就是 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,然后你再在执行sql语句之前执行
mysql_query("set names UTF8");

希望我的回答对你有所帮助
参考技术C if ($db->server_info()>'5.0.1')

$db->query("set names 'gbk'");

直接改成:
$db->query("set names 'gbk'");

我用PLSQL查出来的数据,看表结构为啥comments显示的全是问号?怎么解决啊求详细方法

1、 在plsql的sql windows 用
select 'comment on column '||table_name||'.'||column_name||' is '''||comments||''';'
from dba_col_comments t where t.owner = 'test1';
把查询的结果保存保存为tsv格式
2、 对应的用户以sqlplus连接到另外的数据库中,执行需要导入的tsv文件,
例: SQL> @C:/result.tsv
参考技术A 处理方法:在环境变量中新增以下变量值对:
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.ZHS16GBK
配置完后重启 以下plsql。
已经验证:不要再看楼上那些扯淡的答案了。
参考技术B 我也遇到这种情况了,你解决了吗?怎么破啊 参考技术C 可能是字符集的问题造成的,没有遇到过这样的情况追问

字符集的问题怎么解决,有没有解决方法?

以上是关于PHP读取数据库中文全是问号的主要内容,如果未能解决你的问题,请参考以下文章

oracle导入数据库报错,全是问号,求解

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

oracle导入数据库报错,全是问号,求解

在 PHP 中读取 CSV 文件返回黑色菱形问号

PHP插入数据到数据库出中,中文出现乱码~~全是问号

oracle 显示正常输出到界面为问号