mysql 的乱码

总结今天的数据库的乱码问题 (为了确保所有的字符集都是 utf-8)

1在 jsp form 提交数据时 要设置 method="post"; 不然传到Action时会乱码 (jsp 中的 pageEncoding="UTF-8")

2数据传到Action时不乱码 但是 当我插入到数据库时还是乱码 总结 创建数据库时 要注意 见表语句

 

       CREATE   DATABASE   `db` 

       DEFAULT  CHARACTER   SET  utf8  

       COLLATE   'utf8_general_ci'; 

 

   CREATE   TABLE   `TableA`   
          
 

              `ID`   varchar(40)   NOT   NULL   default   ' ',                                    `UserID`   varchar(40)   NOT   NULL   default   ' '

            )  ENGINE=InnoDB   DEFAULT   CHARSET=utf8; 
                  

因为MySQL默认编码是latin1

3  jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8 

4 修改 mysql 的配置文件  在mysql\bin 的myini 在

# The MySQL server

   [mysqld] 下面加入default-character-set=utf8

5 分享 两个 查看数据库编码的 sql

   SHOW CREATE DATABASE DATABASENAME;

 

   SHOW VARIABLES LIKE 'character%'; 

确保数据库 如下

 

      补充:更改character_set_server,在安装目录的bin文件夹下使用MySQLInstanceConfig.exe配置,在很多步骤中的一步(选择编码)选择第二项(使用UTF-8)或者第三项(自己设定)……更改完毕……

现在可以看到中文正常显示了(主要是因为utf8也支持中文),所以当我们使用命令行工具连接数据库的时候最好将客户端的编码改一下,如果使用GUI的话就不必了,同时修改客户端的编码之后程序依然能够正常显示(以上两点已经测试)

      所以如果在程序中要显示中文的话我们可以选用utf8,gb2312,gbk这三种编码,但是如果想在命令行添加中文数据或者查看的话就需要将客户端的编码设置为gb2312或gbk了,还是那句,CMD的编码有关

 

你可能感兴趣的:(sql,sql,mysql,jsp,jdbc,server)