2009-08-07 9 views
1

Ich habe ein Projekt, wo ich einige Daten aus einer HTML-Datei schaben, in eine MySQL-Datenbank schreiben und sie dann erneut auslesen und dem Benutzer anzeigen. Immer wenn das Servlet etwas in die DB einfügt, wird das "£" -Zeichen als inserted eingefügt und beim Auslesen wieder als solches dargestellt.Debugging eines MySQL-Zeichensatzfehlers

Die Anwendung ist in Java (mit Spring) und JPA mit EclipseLink als JPA-Implementierung geschrieben.

Ich habe das Problem auf das Einfügen in MySQL eingegrenzt, seit wenn ich die Tabelle in der Konsole das Fragezeichen erscheint.

Ich habe konfiguriert MySQL

[mysqld] 
default-character-set=utf8 

UTF-8-Codierung als Standard in my.cnf verwenden, wenn ich

SHOW TABLE STATUS; 

laufen kann ich sehen, daß die Kollation auf den Tischen ist

utf8_general_ci 

was darauf hindeutet, dass der Zeichensatz auch UTF-8 ist.

Auch gibt es das: mysql> SHOW CREATE DATABASE Gate; So

+----------+---------------------------------------------------------------+ 
| Database | Create Database            | 
+----------+---------------------------------------------------------------+ 
| gate  | CREATE DATABASE `gate` /*!40100 DEFAULT CHARACTER SET utf8 */ | 
+----------+---------------------------------------------------------------+ 
1 row in set (0.00 sec) 

, mit Java vollständig Unicode zu sein (?) Und meine DB gesetzt wird auf UTF-8, wo könnte ich für Fehlkonfigurationen/Fehler aus?

Antwort

0

Haben Sie:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

in Ihrer HTML-Seite?

0

Sie auch Ihre MySQL-Treiber sagen sollte utf8

db.url=jdbc:mysql://HOST:3306/DB?characterEncoding=utf8 
verwenden