2009-11-09 4 views

Répondre

11

Créez une colonne avec un jeu de caractères prenant en charge le caractère Euro.

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

Si votre éditeur ne supporte pas Unicde, vous pouvez l'insérer comme;

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

Vous pouvez également enregistrer le symbole Euro dans other character sets:

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

Je ne sais pas ce que votre voulez vraiment, mais il n'y a pas de problème pour le stockage dans un VARCHAR avec UTF8 encodage

4

Si la table ou la colonne est configurée pour utiliser le codage UTF8, quelque chose comme ça fonctionne fin:

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

aussi, ajoutez à votre chaîne de connexion dans le client pour vous assurer que la connexion utilise UTF8:

CharSet=UTF8; 

le tableau I utilisé pour les essais suivre :

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

Bien que je recommande également UTF-8, je voulais ajouter quelques éclaircissements des raisons pour lesquelles vous pouvez avoir du mal à stocker le symbole Euro dans autres encodages. Le symbole de l'euro a été ajouté comme un correctif aux anciens codages Windows et Mac existants vers 1997. Dans Windows-1252, le jeu de caractères Latin-1 Windows, le code choisi était 0x80 et MacRoman a choisi un emplacement différent. Tout va bien, mais de nombreuses applications spécifient l'encodage iso-8859-1 dans leur schéma de base de données MySql pour le texte latin 1-Général, ou marquent leur sortie HTML dans les applications web avec iso-8859-1. Iso-8859-1 n'a jamais été, à ma connaissance, officiellement mis à jour pour cartographier un codepoint pour le symbole de l'euro. L'encodage latin1 qui supporte l'Euro est le peu utilisé iso-8859-15. Donc, si vous utilisez des encodages iso-8859-1 dans votre schéma, vous aurez un comportement indéfini, ou pire.