mysql字符编码问题

在一台机器上有个Mysql服务,我想在这台机器上创建两个数据库,但是期望的两个库的字符编码是不同的,一个希望是utf-8,另一个为latin1。请问Mysql是否支持数据库级别的字符设置(不要服务器级别的)?

每一个数据库有一个数据库字符集和一个数据库校对规则,它不能够为空。CREATE DATABASE和ALTER DATABASE语句有一个可选的子句来指定数据库字符集和校对规则:
[code="java"]
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
[/code]
例如:
[code="java"]
CREATE DATABASE db_name
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
[/code]
MySQL这样选择数据库字符集和数据库校对规则:
· 如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。
· 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。
· 否则,采用服务器字符集和服务器校对规则。

支持,并且可以具体到每一张表

给你看个MySql的建表实例吧:
[quote]
DROP TABLE IF EXISTS bsb;

CREATE TABLE bsb (

id int(34) NOT NULL default '0',

classess varchar(45) default NULL,

asa_id int(22) default NULL,

PRIMARY KEY (id),

KEY asa_id (asa_id),

CONSTRAINT asa_id FOREIGN KEY (asa_id) REFERENCES asa (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

[/quote]
看到最后面的 CHARSET=utf8 了么?所以说,MySQL的编码最细可以细到表这个级别的。

1,在用工具创建的时候就可以选择的。
2,对两个数据库的,在连接语句上也得加上不同编码,
比如
[code="java"]jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8[/code]这样才能确保没有乱码。

不懂的可以问我。