2009-11-09 23 views

Odpowiedz

11

Utwórz kolumnę z zestawem znaków, który obsługuje znak Euro.

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

Jeśli twój edytor nie obsługuje Unicde, możesz wstawić go jak;

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

Można również zapisać symbol Euro w other character sets:

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

Nie wiem, co się naprawdę chce, ale nie ma problemu w przechowywaniu go w VARCHAR z kodowaniem utf8

4

Jeśli tabela lub kolumna jest skonfigurowany do korzystania kodowanie utf8, coś jak to działa porządku:

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

też dodać do Twojego ciąg połączenia w kliencie aby upewnić się, że połączenie wykorzystuje UTF8:

CharSet=UTF8; 

tabela I wykorzystywane do testowania śledzić :

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

Podczas Polecam również UTF-8, chciałem dodać kilka wyjaśnień, dlaczego mogą być kłopoty przechowywania symbolu euro w inne kodowania.

Symbol euro został dodany jako poprawka do istniejących kodowań starszych systemów Windows i Mac około 1997. W Windows-1252, zestaw znaków Latin-1 dla systemu Windows, wybrany punkt kodowy to 0x80, a MacRoman wybrał inną lokalizację. Wszystko jest w porządku, ale wiele aplikacji określa kodowanie iso-8859-1 w ich schemacie bazy danych MySql dla łacińskiego tekstu 1-ogólnego lub oznaczyć ich wyjście HTML w aplikacjach internetowych za pomocą iso-8859-1. Iso-8859-1 nigdy nie był, według mnie, oficjalnie zaktualizowany do mapowania punktu kodowego dla symbolu Euro. Kodowanie latin1, które obsługuje euro, jest rzadko używanym iso-8859-15.

Tak więc, jeśli używasz kodowania iso-8859-1 w swoim schemacie, będziesz miał niezdefiniowane lub gorsze zachowanie.

Powiązane problemy