2009-11-09 67 views

Respuesta

11

Cree una columna con un conjunto de caracteres que admita el carácter Euro.

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

Si su editor no soporta Unicde, se puede insertar como;

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

También puede almacenar el símbolo del Euro en other character sets:

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

No sé lo que tu realmente quieres, pero no hay ningún problema en almacenar en un VARCHAR con codificación UTF-8

4

Si la tabla o la columna está configurada para utilizar la codificación UTF-8, algo así como esto funciona fina:

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

Además, agregue esto a su cadena de conexión en el cliente para asegurarse de que la conexión utiliza UTF8:

CharSet=UTF8; 

la tabla que he usado para pruebas de seguimiento :

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

Aunque también recomiendo UTF-8, que quería añadir algunas aclaraciones de por qué puede estar teniendo problemas para almacenar el símbolo del euro en otras codificaciones

El símbolo del euro se agregó como un parche a las codificaciones heredadas existentes de Windows y Mac alrededor de 1997. En Windows-1252, el conjunto de caracteres latin-1 de Windows, el punto de código elegido fue 0x80 y MacRoman eligió una ubicación diferente. Eso está bien, pero muchas aplicaciones especifican la codificación iso-8859-1 en su esquema de base de datos MySql para texto Latin-1-General, o marcan su salida HTML en aplicaciones web con iso-8859-1. Iso-8859-1 nunca fue, que yo sepa, actualizado oficialmente para mapear un punto de código para el símbolo del euro. La codificación latin1 que no admite el euro es la poco utilizada iso-8859-15.

Por lo tanto, si usa codificaciones iso-8859-1 en su esquema, tendrá un comportamiento indefinido o peor.

Cuestiones relacionadas