本文参考了晚上的很多解决方案,发现大多都不太好用,我自己在我的机器上调试成功,把方法分享给大家。
本文解决了从JSP页面中像数据库中写中文,出现乱码问题,采用的格式是UTF-8编码方式(应该还有其他的编码方式);
1、打开命令提示符,依次输入以下命令:
net start mysql
mysql
show variables like '%char%';
显示以下结果:
+--------------------------+------------------------------+ | Variable_name | Value | +--------------------------+------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 |
mysql和字符集有关的变量character_set_client:客户端请求数据的字符集
character_set_connection:从客户端接收到数据,然后传输的字符集
character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server指定的字符集,
这个变量建议由系统自己管理,不要人为定义。
character_set_filesystem:把os上文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的
character_set_results:结果集的字符集
character_set_server:数据库服务器的默认字符集
character_set_system:这个值总是utf8,不需要设置,是为存储系统元数据的字符集
假如我们要想设定的字符集是utf8的话,步骤如下:
1)修改配置文件
在[client]下添加如下参数,影响系统变量character_set_client和character_set_connection和character_set_results
default-character-set=utf8
--------------------------------------------------在mysql 5.6.20版本里不好用--------------------------------------
在[mysqld]下添加如下参数,影响系统变量character_set_server和character_set_database
default-character-set=utf8
-------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------我成功的写法------------------------------------------------
[mysqld]
character-set-server=utf8
------------------------------------------------------------------------------------------------------------------------
设置完后,启动mysql,我们只需要查看系统变量是否符合我们的要求即可
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
如下三个系统变量不需要关心,不会影响乱码
character_set_filesystem
character_set_system
character_sets_dir
修改结果: mysql> show variables like '%char%'; +--------------------------+------------------------------+ | 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 | 然后添加数据就没有乱码问题了