blurm 发表于 2013-1-27 04:56:56

mysql的中文问题

在mysql根目录下搜索my.ini
 
# CLIENT SECTION

 
default-character-set=utf8
 
# SERVER SECTION

 
default-character-set=utf8
 
然后重启mysql服务
在mysql控制台输入 show variables like '%character%'
 
显示如下:
+--------------------------+--------------------------+
| Variable_name            | Value                    |
+--------------------------+--------------------------+
| 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       | C:\mysql\share\charsets\ |
+--------------------------+--------------------------+
 
新建表:
CREATE TABLE `test_article` (
  `oid` bigint(20) NOT NULL auto_increment,
  `title` varchar(50) default NULL,
  `content` text,
  `createdDate` datetime default NULL,
  PRIMARY KEY  (`oid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
就可以正确插入并显示中文了
 
例如将所有的编码都设置成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(   45  )   CHARACTER   SET   utf8   COLLATE   utf8_bin   NOT   NULL
 
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个设置好了,基本就不会出问题了
页: [1]
查看完整版本: mysql的中文问题