2009-11-09 69 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编码,则会出现未定义的或更糟糕的行为。

相关问题