php数据库转码 php转换数据库到json

php通过odbc用sql语句查询时无法查询中文 , 应该怎么转码咱们以MYSQL为例吧 。
MYSQL数据库存在着编码问题php数据库转码,主要体现在数据库里汉字会出现乱码php数据库转码,WEB页面汉字显示不正常 。
归结起来只有一个原因:会出现编码的地方存在编码不一致 。
WEB开发中:MYSQL编码主要会出现在五个地方:
1. mysql安装的默认编码(latin1)-在mysql.ini(mysql安装根目录下)中设置 。[mysqld]选项,默认没有 。添加即在最后一行加入default-character-set=utf8 。
【php数据库转码 php转换数据库到json】2.mysql数据库的编码,原则上默认的编码是mysql安装的默认编码,也可以在建库时用语句来执行:create databasedbname default character set utf8;我这里是建立一个utf8编码的dbname数据库 。
3.mysql数据表的编码,原则上默认是第二步建立的数据库的编码 。提倡不要在creat table时加上编码
4.利用程序建立mysql连接时,连接字符串使用的编码 。如jdbc,php mysql_connect(),这个地方必须是与你页面的编码一致 。
5.WEB程序页面的编码,charset=utf8;与4必须一致 。
除上面5个地方外,另有一个不是编码者所能控制的,那就是浏览用户的浏览器的编码 , 一般是自动选择,就不列入php数据库转码了 。
上述五个地方,我所知道的保证不出现乱码的方法是:
1 无所谓,但是如果可以调整的话,可以设置成你所需要统一的一个编码 , 如utf8
2,3比较重要 , 我所理解的必须是一致 。建议是在建库语句时带上编码 , 建表时就不指定编码了 。
4是必须的,php下:$link = mysql_connect('localhost', 'root', '')or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('wordpress') or die('Could not select database');
mysql_query("set names utf8;");//这句
如利用PDO的话 $dbh = new PDO($dsn, $config['db']['username'], $config['db']['password']);
$dbh-exec('SET CHARACTER SET utf8');//这句
5在WEB页面中必须设置成上面的统一的编码 。
请不要结束,继续往下看:上述方法中必须统一是统一的编码 , 我使用的是utf8,为什么使用utf8是我正要说的 。
php 转码问题mysql_query("set character set 'GB2312'");//设置字节集编码
你找到你读取数据库函数的这条 没有的话增加一条
数据库是UFT-8 你应该豪不留情的用UTF-8不然icnov不支持特殊字符 及片甲字
PHP读取Access数据库 出乱码access的中文版默认是GBK格式的,是无法改变字符类型的,所以用php读取的时候会乱码 。
解决方法是:使用iconv转换
一、使用 iconv函数制作一个转码的自定义从GBK转到UTF-8的函数,如以下代码:
function enc($c){return iconv('gbk','utf-8',$c);}
二、为了写入数据库的编码是符合数据库需要的,所以我们还要制作一个从UTF-8转向GBK的函数:
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了转码函数,接下就是正常使用了 。在从数据库里面调数据显示在页面的时候使用enc()函数,从页面提交数据到数据库时使用dec()函数,这样就可以很好的解决PHP使用UTF-8编码,ACCESS使用系统默认编码的问题了 。
php数据库转码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php转换数据库到json、php数据库转码的信息别忘了在本站进行查找喔 。

    推荐阅读