存到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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值