如何在mysql数据库中存储Euro Symbol?

时间:2009-11-09 20:39:34

标签: mysql symbols

如何在MySQL数据库中存储欧元货币符号?

4 个答案:

答案 0 :(得分: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 :(得分:4)

如果表或列设置为使用utf8编码,那么这样的工作正常:

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 :(得分:2)

虽然我也推荐UTF-8,但我想补充一些澄清,说明为什么你可能在将欧元符号存储到其他编码时遇到问题。

欧元符号被添加为大约1997年现有Windows和Mac遗留编码的补丁。在Windows-1252中,Windows latin-1字符集,选择的代码点为0x80,MacRoman选择了不同的位置。这一切都很好,但许多应用程序在其MySql数据库Schema中为Latin 1-General文本指定iso-8859-1编码,或使用iso-8859-1在Web应用程序中标记其HTML输出。据我所知,Iso-8859-1从未正式更新为映射欧元符号的代码点。支持欧元的latin1编码是不经常使用的iso-8859-15。

因此,如果您在架构中使用iso-8859-1编码,则会出现未定义或更糟糕的行为。

答案 3 :(得分:1)

我不知道你真正想要的是什么,但将它存储到带有utf-8编码的VARCHAR中没有问题