首页 / MYSQL / mysql安插中文乱码
mysql安插中文乱码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql安插中文乱码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1831字,纯文字阅读大概需要3分钟。
内容图文
![mysql安插中文乱码](/upload/InfoBanner/zyjiaocheng/223/158eab6672d14af18f2c70c8c34383d3.jpg)
php文件里设置了网页编码为utf-8
header("Content-type:text/html; charset=utf-8");
插入数据库前设置了传递给数据库的编码为utf-8
$this->mysqli->query("set names utf8");
数据库中,设置了一些字符集有关的变量
查询show variables like 'char%';后结果为
查询show variables like 'collation_%';后结果为
我用的WampServer,修改mysql配置文件my.ini,在[client]节点下添加default-character-set=utf8 ,在[mysqld]节点下添加character_set_server=utf8,然后重启musql服务
但是传到数据库里,中文字符都变成了问号。。请问应该如何设置才能解决乱码? 分享到:
------解决方案--------------------
把你做的所有修改都还原的初始状态!
需要注意的是:
1、所有与字符集相关的设置,都不会影响到数据库中的已有数据
2、字符集相关的设置,只对设置后插入的数据生效
3、数据库是共有资源,不要轻易修改设置。以免引发其他应用的问题
只要做到以下两点,就不会出现乱码问题
1、所有可能会有中文内容的字段,都需要有中文字符集的连接校对。至于是哪个字符集都无所谓(gbk、utf8、ucs2都可以)也不需要每个字段都相同
2、每次在连接数据库之后,执行一次 set name 页面字符集
------解决方案--------------------
删去原表
drop table tb_userinfo
重新创建
CREATE TABLE `tb_userinfo` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8
其实可以不用这么做
只需修改连接校对就可以了
ALTER TABLE `tb_userinfo` CHANGE `username` `username` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
------解决方案--------------------
改了表字符集,字段也是要改的,你就drop table; 后再重新建表。
CREATE TABLE `tb_userinfo` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8;
内容总结
以上是互联网集市为您收集整理的mysql安插中文乱码全部内容,希望文章能够帮你解决mysql安插中文乱码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。