Encodage des caractères

Oneagaindoguys Messages postés 8 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 17 mars 2010 - 21 janv. 2010 à 18:03
cs_kadiamor Messages postés 4 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 18 avril 2011 - 18 avril 2011 à 16:14
Bonjour, je recherche depuis ce matin la solution, en vain.
Comme dit dans le titre problème survient avec les caractères. J'ai écris mon fichier .sql qui me permet de créer ma base de données et mes relations.

Je n'ai pas mis beaucoup de contraintes pour le moment.

Voici le début du fichier

DROP DATABASE IF EXISTS Javarch;

CREATE DATABASE Javarch DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

USE Javarch;



Je détermine mon encodage utf8.


Voici le code ma première table :

CREATE TABLE Client(
`identifiantClient` CHAR(9),
`dateCreation` CHAR(10) NOT NULL,
`nomSociete` CHAR(30) NOT NULL,
`adresseSociete` CHAR (80) NOT NULL,
`codePostalSociete` CHAR(5) NOT NULL,
`villeSociete` CHAR(30) NOT NULL,
`telephoneSociete` CHAR(14) NOT NULL,
`faxSociete` CHAR(14),
`adresseEmailSociete` CHAR (80),
`civiliteAdministrateur` CHAR(12),
`nomAdministrateur` CHAR(30) NOT NULL,
`adresseAdministrateur` CHAR (80),
`codePostalAdministrateur` CHAR(5),
`villeAdministrateur` CHAR(30),
`telephoneAdministrateur` CHAR(14),
`faxAdministrateur` CHAR(14),
`adresseEmailAdministrateur` CHAR (80),
`civiliteFacturation` CHAR(12),
`nomFacturation` CHAR(30) NOT NULL,
`adresseFacturation` CHAR (80),
`codePostalFacturation` CHAR(5),
`villeFacturation` CHAR(30),
`telephoneFacturation` CHAR(14),
`faxFacturation` CHAR(14),
`adresseEmailFacturation` CHAR (80),
`nombreBoites` CHAR(10) NOT NULL,
`nombreFamille` CHAR(10) NOT NULL,
`nombreConteneurs` CHAR(10) NOT NULL,
`commentaire` TEXT,
`numeroCompta` CHAR(6),
`codeDeConnexion`CHAR(15),
`siren` CHAR(10) NOT NULL,
`etatGestion` CHAR(10),
`operateur` CHAR (40),
`typeTraitement` CHAR (10) NOT NULL,
`agenceTraitement` CHAR(11) NOT NULL,
`dateEmission` CHAR(10) NOT NULL,
`dateRetour` CHAR(10) NOT NULL,
`indiceINSEE` CHAR(4) NOT NULL,
`periodeINSEE` CHAR(15) NOT NULL,
`dateIntegration` CHAR(10),
`APE` CHAR(5) NOT NULL
);
ALTER TABLE Client ADD PRIMARY KEY (identifiantClient);
LOAD DATA INFILE 'C:\\clients.txt' INTO TABLE Client;

J'ai également modifié le my.ini en remplaçant latin1 par utf8.

Voici les résultats des commandes :

mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| cp866 | DOS Russian | cp866_general_ci | 1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
| macce | Mac Central European | macce_general_ci | 1 |
| macroman | Mac West European | macroman_general_ci | 1 |
| cp852 | DOS Central European | cp852_general_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
| cp1256 | Windows Arabic | cp1256_general_ci | 1 |
| cp1257 | Windows Baltic | cp1257_general_ci | 1 |
| binary | Binary pseudo charset | binary | 1 |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
+----------+-----------------------------+---------------------+--------+
36 rows in set (0.00 sec)


mysql> SHOW VARIABLES LIKE 'character_set_system';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| character_set_system | utf8 |
+----------------------+-------+
1 row in set (0.00 sec)


mysql> show variables like 'char%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | latin1
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)


Lorsque j'essaie d'insérer mes valeur j'écris "En règle" et le SGBD renvoie :

ERROR 1366 (HY000): Incorrect string value: '\xE8gle' for column 'etatGestion' a
t row 1
Query OK, 0 rows affected (0.06 sec)

Merci d'avance à tous!

1 réponse

cs_kadiamor Messages postés 4 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 18 avril 2011
18 avril 2011 à 16:14
Il faut essayer de définir chaque champ en UTF-8 comme cet exemple sous dessous:

CREATE TABLE PERSONNE(
ID INT(10) NOT NULL AUTO_INCREMENT,
nom VARCHAR (20) character set utf8 collate utf8_bin NOT NULL,
prenom VARCHAR (20) character set utf8 collate utf8_bin NOT NULL,
CONSTRAINT PK_PERSONNE PRIMARY KEY (ID)
);

[b]BADJI Ousmane
HLM Grand Yoff
Villa N°146
Dakar/Sénégal
Tél.: (00221) 77 362 79 76
/b
0