存到mysql的中文乱码_将用户输入的中文保存到数据库出现中文乱码问题

a4c26d1e5885305701be709a3d33442f.png数据库乱码

a4c26d1e5885305701be709a3d33442f.png浏览器出现的乱码

出现乱码问题,一定是编码和解码用的码表不一致造成的。从用户界面到数据库显示的cmd界面需要编码和解码的地方有:

浏览器使用的编码,socket发送使用的编码,tomcat连接器解析时使用的编码,mysql存储引擎所使用的编码,jsp,

windows cmd界面所使用的编码。

常出现的中文默认编码:   浏览器默认gb2312, JSP

默认ISO-8859-1,socket 传输和数据库 utf-8,

cmd默认GBK编码,InnoDB默认使用latin1_swedish_ci

解决办法只能一一的核对编码方式,统一的使用一种编码方式,推荐使用utf-8,变长编码方式,有GBK和utf-16的优势,方便网络传输。​

​感觉最麻烦的是 mysql的编码:

修改编码可以从配置文件my.ini(window)​或my.cnf(linux)和命令行修改:

​my.ini:

​--在 [mysqld]

标签下加上三行default-character-set = utf8character_set_server =

utf8lower_case_table_names = 1 //表名不区分大小写(此与编码无关)

--在 [mysql] 标签下加上一行default-character-set = utf8

--在 [mysql.server]标签下加上一行default-character-set = utf8

--在 [mysqld_safe]标签下加上一行default-character-set = utf8

--在 [client]标签下加上一行default-character-set = utf8

命令:

| character_set_client | utf8 || character_set_connection | utf8

|| character_set_database | utf8 || character_set_results | utf8 ||

character_set_server | utf8 || character_set_system | utf8 ||

character_sets_dir | /usr/share/mysql/charsets/ |

如果仍有编码不是utf8的,请检查配置文件,也可使用mysql命令设置:set character_set_client =

utf8;set character_set_server = utf8;set character_set_connection =

utf8;set character_set_database = utf8;set character_set_results =

utf8;set collation_connection = utf8_general_ci;set

collation_database = utf8_general_ci;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部