需注意以下三点:
1、创建数据库的时候:CREATE DATABASE `database`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、设置URL的时候 jdbc:mysql://localhost:3306/database?seUnicode=true&characterEncoding=UTF-8
这3个设置好了,基本就不会出问题了
总结:
是编码的问题,数据库,表和字段的编码和jsp的编码统一,就应该能解决了,比如都是utf-8
例如将所有的编码都设置成utf8,jsp的contentType="text/html;charset=utf-8"
修改数据库默认编码ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表字段的编码ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR
注:
alter table table_name collate是一个子句,可应用与数据库定义或列定义以定义排序规则, 语法 < collation_name > ::= 参数 是应用于表达式、列定义或数据库定义的排序规则的名称。 Windows_collation_name SQL_collation_name COLLATE 子句只能应用于 char、varchar、text、nchar、nvarchar 和 ntext 数据类型。 |