Mysql5.0中文乱码问题解决方案

需注意以下三点:

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

 

注:

mysql更改数据库表字段的编码

alter table table_name
change colum_name colum_name varchar(50)
character set gbk collate gbk_chinese_ci
not null
以上语句可以将表中的某个字段的编码更改。

collate是一个子句,可应用与数据库定义或列定义以定义排序规则,
或应用于字符串表达式以应用排序规则投影。

语法
COLLATE < collation_name >

< collation_name > ::=
{ Windows_collation_name } | { SQL_collation_name }

参数
collation_name

是应用于表达式、列定义或数据库定义的排序规则的名称。
collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

Windows_collation_name
是 Windows 排序规则的排序规则名称。请参见 Windows 排序规则名称。

SQL_collation_name
是 SQL 排序规则的排序规则名称。请参见 SQL 排序规则名称。

COLLATE 子句只能应用于 char、varchar、text、nchar、nvarchar 和 ntext 数据类型。

你可能感兴趣的:(sql,mysql,数据库,windows,database,collation)