2010-03-25 88 views
2

我需要在MySQL中创建一个表,其中存储世界上不同国家的不同货币符号。这些符号在不同的语言,没有得到插入到数据库和它抛出这样的错误MySQL - 以不同语言或特殊符号存储字符

incorrect string value xd8\x8b 

的样本数据是:

 
insert into country (country_name, currency_name, currency_code, currency_symbol) values 
('Afghanistan','Afghanis','AFN',' ؋'), 
('Aruba','Guilders','AWG',' ƒ'), 
('Azerbaijan','New Manats','AZN',' ман'), 
('Bulgaria','Leva','BGN',' лв'), 
('Costa Rica','Colón','CRC',' ₡'), 
('Cuba','Pesos','CUP',' ₱'), 
('Cyprus','Euro','EUR',' €'), 
('Czech Republic','Koruny','CZK',' Kč'), 
('Ghana','Cedis','GHC',' ¢'), 
('Iran','Rials','IRR',' ﷼'), 
('Israel','New Shekels','ILS',' ₪'), 
('Japan','Yen','JPY',' ¥'), 
('Kazakhstan','Tenge','KZT',' лв'), 
('Korea','Won','KPW',' ₩'), 
('Laos','Kips','LAK',' ₭'), 
('Macedonia','Denars','MKD',' ден'), 
('Mongolia','Tugriks','MNT',' ₮'), 
('Nigeria','Nairas','NGN',' ₦'), 
('Pakistan','Rupees','PKR',' ₨'), 
('Russia','Rubles','RUB',' руб'), 
('Vietnam','Dong','VND',' ₫'), 
('Yemen','Rials','YER',' ﷼'); 

我使用的是MySQL 5.1.22,这是当前的表结构:

 
CREATE TABLE `country` (
    `country_id` int(11) NOT NULL AUTO_INCREMENT, 
    `country_name` varchar(100) DEFAULT NULL, 
    `currency_name` varchar(100) DEFAULT NULL, 
    `currency_code` varchar(20) DEFAULT NULL, 
    `currency_symbol` varchar(20) DEFAULT NULL, 
    `date_created` datetime DEFAULT NULL, 
    `last_modified` datetime DEFAULT NULL, 
    PRIMARY KEY (`country_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=latin1; 

这仅仅是将CHARSET改为别的东西吗?

回答

3

是的。将charset更改为UTF8。

+0

谢谢 - 我创建了一个CHARSET设置为UTF8的新表 - 仍然不会像阿富汗,阿塞拜疆,保加利亚,哥斯达黎加等货币插入某些行。 – Gublooo 2010-03-25 19:39:36

+0

@Gublooo这些符号也必须在utf-8中,你必须在连接后立即向服务器发送SET NAMES utf8查询。 – 2010-03-25 20:02:53

+0

弹片 - 所以你说 - 例如插入日元符号 - 我必须输入UTF-8的值,如0xC2,0xA5 - 嗯,如果是这种情况 - 当我检索这些数据并在浏览器中显示我是否需要做任何事情特殊的或将它显示为日元符号 - 谢谢 – Gublooo 2010-03-25 20:20:31