Comment enregistrer un symbole pour l'euro dans la base de données MySQL?Comment stocker Euro Symbol dans la base de données mysql?
Répondre
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
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
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
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.