2009-11-09 72 views

回答

11

使用支持歐元字符的字符集創建列。

CREATE TABLE MyTable 
(
    MyEuroColumn VARCHAR(5) 
     CHARACTER SET utf8 
     COLLATE utf8_general_ci 
); 

如果你的編輯器不支持Unicde,你可以像插入它;

select concat('Five ', _ucs2 0x20AC, ' please!') 

您還可以存儲在other character sets歐元符號:

UTF-8     0xE282AC 
UCS-16     0x20AC 
ISO-8859-15 (latin-9) 0xA4 
1

我不知道你真正想要的,但如果表或列設置爲使用utf8編碼,像這樣的作品的東西沒有問題,將其存儲到VARCHAR與UTF8編碼

4

精細:

insert into test values (1, '€ <- euro'); 

此外,在客戶端添加到您的連接字符串,以確保連接使用UTF8:

CharSet=UTF8; 

我用於測試的表遵循:

CREATE TABLE `g`.`test` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(10) character set utf8 NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 
2

雖然我還建議UTF-8,我想添加一些澄清爲什麼您可能會遇到問題存儲歐元符號其他編碼。

歐元符號作爲補丁添加到大約1997年的現有Windows和Mac遺留編碼中。在Windows-1252中,Windows latin-1字符集選擇的代碼點爲0x80,MacRoman選擇了不同的位置。這很好,但許多應用程序在他們的MySql數據庫Schema中爲Latin 1-常規文本指定了iso-8859-1編碼,或者使用iso-8859-1將它們的HTML輸出標記爲web應用程序。就我所知,Iso-8859-1從未正式更新過,以繪製歐元符號的代碼點。支持歐元的latin1編碼是不常用的iso-8859-15。因此,如果您在架構中使用iso-8859-1編碼,則會出現未定義的或更糟糕的行爲。

相關問題