Problème d'encodage mysql
Bonjour,
j'ai un problème avec les caractères accentués avec mysql.
J'ai une application JSP qui tourne sur un serveur tomcat sur linux qui fait des accès à une base mysql.
J'ai essayé de regarder la FAQ et de regarder différents sujets traitant du même problème, mais je n'ai trouvé aucune solution à mon problème.
En fait, lorsque je me connecte à mon application, j'ai par exemple les caractères suivant qui apparaissent :
Bouches du Rhône (13)
Microsoft® Windows®
ou encore
Disque dur : 160Go à 7200 tr/mn
Je voudrais bien sur que l'affichage des accents se passe sans problème, mais je n'arrive pas à mettre le doigt sur l'option à modifier pour y arriver ...
POurriez vous me conseiller s'il vous plait ?
Nicolas
[EDIT] Si çà peut vous aider, quelques infos supplémentaires.
Toutes mes pages JSP commencent par :
Code:
1 2 3 4 5 6
| <?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="1.2" xmlns:ajaxTags="http://java.sun.com/blueprints/ajaxtextfield"
xmlns:bp="http://java.sun.com/blueprints/ui/14"
xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
<jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/> |
et voici ce que me répond le serveur mysql au niveau de l'encodage :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| mysql> \s
--------------
/opt/mysql/bin/mysql Ver 14.12 Distrib 5.0.21, for pc-linux-gnu (i686) using readline 5.0
Connection id: 49
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.21-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 2 hours 26 min 58 sec
Threads: 1 Questions: 12608 Slow queries: 0 Opens: 0 Flush tables: 1
Open tables: 40 Queries per second avg: 1.430
-------------- |
et si je me positionne sur une base, voici ce qu'il me retourne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| mysql> \s
--------------
/opt/mysql/bin/mysql Ver 14.12 Distrib 5.0.21, for pc-linux-gnu (i686) using readline 5.0
Connection id: 50
Current database: emos_devel
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.21-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 2 hours 32 min 58 sec
Threads: 1 Questions: 12620 Slow queries: 0 Opens: 0 Flush tables: 1
Open tables: 40 Queries per second avg: 1.375
-------------- |
Et enfin, voilà ce que me donne un SHOW CREATE TABLE :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| mysql> SHOW CREATE TABLE sector;
+--------+---------------------+
| Table | Create Table
+--------+---------------------+
| sector | CREATE TABLE `sector` (
`SEQ` int(11) NOT NULL auto_increment,
`ID` varchar(50) character set latin1 NOT NULL default '',
`DESCRIPTION1` varchar(250) character set latin1 default NULL,
`DESCRIPTION2` varchar(250) character set latin1 default NULL,
PRIMARY KEY (`SEQ`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------+---------------------+
1 row in set (0.01 sec) |
J'ai bien l'impression que c'est un pb de charset sur les colonnes, mais je sais pas quoi faire.
Avez-vous des idées ?
Merci d'avance