php每次链接数据库时都要执行一次mysql_query("set names 'utf8'",$conn);
有没有什么方法可以设置php连数据库默认的编码方式?
回复内容:
php每次链接数据库时都要执行一次mysql_query("set names 'utf8'",$conn);
有没有什么方法可以设置php连数据库默认的编码方式?
不建议你轻易尝试上面提到的方法。SET NAMES 'utf8'不是设置mysql的字符集,而是连接校对的字符集。
这表示你当前连接使用的客户端的数据的编码方式(对浏览器来说就是charset=uft-8),和php程序的源码格式、mysql的数据库编码格式完全无关。
比如说你的网页是gbk编码的,那么通过你的网页提交的数据存入mysql的时候应该指明SET NAMES 'GBK'。
连接校对的作用:是为了保持客户端与mysql之间数据编码的一致性。事实上连接校对字符集指定错误不会影响客户端自己,但是会影响第三方。
例
客户端1内容是GBK编码,连接校对是 utf-8,mysql使用的字符集是latin-1,那么会先按照utf-8解码,然后再用latin-1编码,保存。对于客户端1来说,读数据就是该过程的反向,数据不出会出现异常。
然而客户端2内容是utf-8编码,连接校对是utf-8,此时它在读取客户端1写入的数据后就乱码了,同样客户端1读取客户端2写入的内容也是乱码的。但是他们读取自己写入的内容则都没有问题。
而是用mysql命令行则会发现,客户端1写入的数据由于编码异常显示为乱码,而客户端2写入的数据是正常的。
这个和php无关。你需要设置MySQL的默认编码,修改my.ini配置文件中
立即学习“PHP免费学习笔记(深入)”;
一款基于PHP+MYSQL开发的企业网站管理软件,具有灵活的栏目内容管理功能和丰富的网站模版,可用于创建各种企业网站。v5.1版本支持了PHP5+MYSQL5环境,前台网站插件开放源码,更利于个性化的网站开发。具有以下功能特点和优越性:[>]模版精美实用具有百款适合企业网站的精美模版,并在不断增加中[>]多语言支持独立语言包,支持GBK,UTF8编码方式,可用于创建各种语言的网站[&g
在php中设置默认编码utf-8, 搜索default-charset,并设置为utf8应该就行了
mysql里有4,5种编码,去配置下
PHP&MySQL与UTF8终极处理方案









