php网mysql数据库插入数据乱码问题?

我php页面是设置为

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

数据库的编码也是utf8

Variable_name Value

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir D:\mysql\share\charsets\

我在地址栏输入
http://zjnetwork.gotoip1.com/library/shz_library.php?action=3&searchzd=文件
将“文件”写入到数据库,结果查看数据库是“%E6%96%87%E4%BB%B6”
请问怎么解决,让在数据库中显示也是“文件”

7个回答

·set character_set_results=gb2312;·

set character_set_results=gb2312;

mysql_query("set names utf8")

url中的中文是会被转码的,你要使用urlencode($str)对中文进行转码,然后再接受的时候使用urldecode($str)进行解码,获得你所传递的中文,
才能存入中文。

先判断你要插入数据库的文本的编码方式,是utf-8就插入,不是的话要转为utf-8之后再插入:
$e=mb_detect_encoding($text, array('UTF-8', 'GBK'));
switch($e){
case 'UTF-8' : //如果是utf8编码就直接插入数据库
break;
case ‘GBK’: //如果是gbk编码就转换为utf-8之后再插入数据库
iconv(“GBK″,UTF-8”,$data) ;
break;
case ‘GB2312’: //如果是GB2312编码就转换为utf-8之后再插入数据库
iconv(“GB2312″,UTF-8”,$data) ;
break;
}

MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!!
utf8可以兼容世界上所有字符!!!!
Linux下Mysql插入中文显示乱码解决方案
mysql -uroot -p 回车输入密码
解决方案:
mysql>user mydb;
mysql>alter database mydb character set utf8;!
另一种方法是直接修改默认的Mysql配置文件
在debian环境下,彻底解决mysql无法插入中文和中文乱码的办法
上面提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功,比如我用的debian 7.0,找了好久终于找到一个适合debian系统的解决方案,debian 7.0下测试成功,其他诸如修改client和mysql加入default-character-set=utf8的方法之类的,只适用与5.5以前的系统!

将“文件”写入到数据库,文件的内容不是UTF-8编码的吧?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问