如何在mysql数据库中存储欧元符号?

如何在mysql数据库中存储欧元符号?,mysql,symbols,Mysql,Symbols,如何在MySQL数据库中存储欧元的符号?我不知道您真正想要的是什么,但使用utf-8编码将其存储到VARCHAR中是没有问题的如果表或列被设置为使用utf8编码,类似这样的工作就可以了: insert into test values (1, '€ <- euro'); 用于测试的表I如下所示: CREATE TABLE `g`.`test` ( `id` int(11) NOT NULL auto_increment, `name` varchar(10) character

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

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

如果表或列被设置为使用utf8编码,类似这样的工作就可以了:

insert into test values (1, '€ <- euro');
用于测试的表I如下所示:

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

创建一列,其中包含支持欧元字符的字符集

CREATE TABLE MyTable
(
    MyEuroColumn VARCHAR(5)
      CHARACTER SET utf8
      COLLATE utf8_general_ci 
);
如果你的编辑器不支持Unicode,你可以像这样插入它

select concat('Five ', _ucs2 0x20AC, ' please!')
您还可以将欧元符号存储在:


虽然我也推荐UTF-8,但我想澄清一下为什么在其他编码中存储欧元符号时会遇到问题

大约在1997年,欧元符号作为补丁添加到现有的Windows和Mac传统编码中。在Windows-1252(Windows latin-1字符集)中,选择的代码点为0x80,MacRoman选择了不同的位置。这很好,但是许多应用程序在MySql数据库模式中为拉丁语1-General文本指定iso-8859-1编码,或者在web应用程序中使用iso-8859-1标记HTML输出。据我所知,Iso-8859-1从未正式更新为映射欧元符号的代码点。支持欧元的拉丁文编码是不常使用的iso-8859-15

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

select concat('Five ', _ucs2 0x20AC, ' please!')
UTF-8                  0xE282AC
UCS-16                 0x20AC
ISO-8859-15 (latin-9)  0xA4