Character Encoding mySQL S4U

Lapster

Registered User
Hallo,
ich habe ein Problem mit dem character encoding bei mySQL und S4U.
Die Texte in der DB liegen korrekt vor zb. "Text übernommen".
Lese ich nun die Daten via JDBC aus und gebe sie direkt auf der Konsole aus, wird wie in diesem Beispiel "Text übernommen" das "ü" nicht dargestellt.

Kann mir einer einen Tipp geben wie das zu beheben ist?
Vielen Dank.
Laster
 
In /etc/my.cnf in den Kategorien [mysqld] und [client] folgendes einfügen:
default-character-set = latin_de

Versuch danach nochmal Umlaute in die Datenbank zu schreiben. Kann sein, dass es jetzt bereits andere Zeichen sind.

Ansonsten mußt Du schauen, ob Du der JDBC einen anderen Character-Set beibringen kannst.

huschi.
 
Nachtrag:
Hab grad mal in alten Datenbank-Code rumgewühlt:
Code:
String Connect_URL = "jdbc:mysql://localhost:3306/Buchhaltung"; // nur zur Verdeutlichung
DriverManager.getConnection(Connect_URL + "?characterEncoding=ISO-8859-1", Connect_USER, Connect_PASSWORD);

huschi.
 
Hallo.
Ersmal vielen Dank für die Hilfe.
Leider hat beides nichts genützt :(

Oder muß irgendwas neu gestartet werden (außer Tomcat)?

Gibt's noch andere Möglichkeiten?
 
Last edited by a moderator:
ich hab auch diese problem, habs mit yast die sprach werte geändert auf de_DE ; de_DE@euro; de_DE.iso-8859-1;...

hat aber ncihts geholfen.
Habs dann auch als export befehl in die .profile geschriben vom root user hat aber auch nciht geholfen, weiss nimma weiter.


hier meine start.sh für mein prog (javachat)

PHP:
#!/bin/sh
CHATBASE=/opt/chat
JAVABASE=/usr/local/j2sdk1.4.2_05/jre

# nothing to edit beyond this line
cd $CHATBASE
CHATCP=${CHATBASE}/lib/gnu-regexp-1.1.4.jar:${CHATBASE}/lib/mysql-connector-java-2.0.14-bin.jar:${CHATBASE}/classes:${CHATBASE}/modules
${JAVABASE}/bin/java -cp "${CHATCP}" Chat

vielleicht kannst du ja weiter helfen

vielen dank

nachtrag:

# jbdc-url: jdbc:mysql://[HOST]/[DATABASE]
jdbcurl=jdbc:mysql://localhost/usr_web1_3
sqldriver=com.mysql.jdbc.Driver
sqluser=xxxxxx
sqlpassword=xxxxxxx

L.g
 
Last edited by a moderator:
Die oben genannten Lösungen ('?characterEncoding=ISO-8859-1' und 'useUnicode=true') werden dem Connect-String als Parameter angehängt. Evtl. kannst Du es an die jdbcurl anhängen.

huschi.
 
hi

habs eh so:


# jbdc-url: jdbc:mysql://[HOST]/[DATABASE]
jdbcurl=jdbc:mysql://localhost/usr_web1_4?autoReconnect=true&useUnicode=true&characterEncoding=ISO-8859-1
sqldriver=com.mysql.jdbc.Driver
sqluser=web1
sqlpassword=xxxxxx

hast du eine idee warum es nicht geht?

danke, ich weiss wirklich nimma weiter
 
Hi!

Also hab die j2sdk1.4.2_05 und die j2re1.4.2_05 installiert!
Verbunden mit MySQL 4.0.15-Max und wie ich die JDBC raus finde weiss ich nciht!

L.g
 
Ich muß zugegen, daß ich noch keine MySQL 4 Datenbank per Java angesprochen habe. (Ich habe es bisher auch nicht vor...)
Aber ich bin mir nicht ganz sicher ob 'useUnicode=true&characterEncoding=ISO-8859-1' sich nicht bereits gegenseitig ausschließt. Denn entweder man hat eine 8Bit-Codierung oder mit Unicode einen 16Bit-Code.

Bei mir reicht jedenfalls der Parameter 'characterEncoding=ISO-8859-1'.

huschi.
 
Hi,
ich hab's im Original so:

// Verbindung zur Datenbank aufnehmen
_cn = DriverManager.getConnection( _DATABASEPREFIX + _strMySQLUrl + _DATABASEPORT + _strDatabase +
"?useUnicode=true&characterEncoding=ISO-8859-1", _strMySQLUser, _strMySQLPW );

Bei mir funzt das so.
Vielleicht hilfts?!
 
Back
Top