如何在MySQL数据库中存储欧元货币符号?
答案 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中没有问题