php读写数据库编码 php设置数据库编码格式
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连MySQL数据库编码问题
也许是数据库的问题,我也遇到过,我用的是wampserver,界面的工具,直接点鼠标就可能建成mysql数据库,建成后导入数据,查询数据库返回面而的是乱码,我遇到的情况是这样的:
1、建库用gbk,如图。
2、导入表及数据时,默认是utf,此处要改成gbk就不是乱码了,如第图底页面,如果是默认的或是其它的字符集,能导入成功但是乱码。另外直接把sql粘贴到sql窗口,也不是乱码。
希望能帮到你,呵呵~
php向mysql表中写入中文,读出来是乱码,编码set names utf8
set
names
只是告诉数据库,取出和存入的字符编码是什么,与数据库内部使用什么编码储存没有关系。
既然你设定了utf8
那么请检查
php文件编码是否是utf8,不是的话使用
header('Content-Type:text/html;
charset=utf-8');
再检查html页面编码是否utf8,不是的话使用
meta
http-equiv="content-type"
content="text/html;charset=utf-8"
/
php文件和mysql数据库编码问题
文件编码需要做到三个编码一致,如果你做到以下三个编码一致就永远不会出现乱码了!!!!!
(1)数据库编码
数据库编码注意的是数据库表字段的编码和数据库客户端编码,比如表字段的编码是UTF-8,操作数据库PHP文件编码是GB2312, 怎样才不会出现乱码呢?这个时候就要用SET NAMES GB2312来设置数据库服务器的客户端的编码,这样数据库服务器就会自动将数据库中编码为UTF-8的数据自动转化为GB2312,在接收的PHP文件就保证收到的数据不会有乱码
(2)PHP文件编码
也就是你在保存文件时选择的文件编码,如果不是当前你想要的编码可以通过“另存为”改变编码
(3)HTML中meta http-equiv="content-type" content="text/html;charset=gb2312"/设置客户端浏览器显示数据的编码,其本质是设置HTTP中Content-Type报头的值,PHP中要做到这一点可以用 header("content-type:text/html;charset=gb2312")
做到上面各编码一致的编码一致,不会出现乱码的!!
分享名称:php读写数据库编码 php设置数据库编码格式
文章起源:http://myzitong.com/article/dogpsgc.html