Umlaute mysql

Status
Nicht offen für weitere Antworten.
Hi,

ich schreibe Dateiname nach MySql und lese sie wieder aus. Dabei werden Umlaute falsch nach mysql geschrieben.
Ich habe schon ein paar Sachen versucht, jedoch ohne Erfolg:
1. Im MySql Manual steht, man solle den MySql-Sever mit -default-character-set=german1 starten. Habe ich gemacht, jedoch keine Veränderung.
2. Es gibt den String-Constuctor: String(byte[] b,String charset) jedoch erhalte ich hier etwas merkwürdige Ergebnisse:
Code:
byte[] b_file = file_name.getBytes();
String iso_file = new String(b_file,"ISO-8859-1");
String utf_file = new String(b_file,"UTF-8");
Die Variablen sehen dann wie folgt aus:
file_name = "Düne.tif"
b_file = [68, 117, 63, 110, 101, 46, 116, 105, 102]
iso_file = "Du?ne.tif"
utf_file = "Du?ne.tif"

Kennt sich hiermit jemand aus?

cm
 

thE_29

Top Contributor
Das Problem ist die getBytes() Methode!

Er wandelt dir das ü in 2 zeichen um (siehe die Länge, es ist es zu lang)

Mache lieber statt getbytes() eine for Schleife die so aussieht

Code:
byte []b_file = new byte[file_name.length()];

for(int x = 0; x != b_file.length; x++)
  b_file[x] = (byte)file_name.charAt(x);

Und schau ob es so geht!
 

Bleiglanz

Gesperrter Benutzer
Code:
byte[] b_file = file_name.getBytes();
String iso_file = new String(b_file,"ISO-8859-1");
String utf_file = new String(b_file,"UTF-8");
das ist völlig unsinnig:

die erste Zeile liefert dir ein byte-Arry im Default-Encoding deiner Plattform (BTW: deprecated!)

und dann versuchst du einfach, dieses byte[] als ISO-8859-1 oder UTF-8 zu interpretieren; wenn du bei dir aber was anderes hast, dann sind diese neuen Strings einfach kaputt - und bestenfalls hast du überhaupt nichts geändert :)

das könnte bei reinem ASCII (alles <= 127) noch gut gehen, ist aber trotzdem völliger Quark: Java Strings haben nämlich überhaupt kein Encoding, das kommt erst bei IO zum tragen

verwende mal lieber ein preparedStatement und setString, ggf. kannst du auch bei der mysql-Connection einen Parameter fürs Encoding angeben...
 
Hi,

der Tip mit dem Encoding war nicht schlecht, allerdings scheint darfür mindestens Mysql 4.1 notwendig zu sein!
Meine Lösung sieht jetzt wie folgt aus:

In MySql 4.1 für das Feld die Kollation auf "utf8_unicode_ci" gestellt.
Den Connector mysql-connector-java-3.1.10-bin.jar geladen (mit dem Vogänger 3.0.15 geht es auch nicht)!
Beim Schreiben in dieses Feld aus Java verwende ich nun folgende URL:
jdbc:mysql://ip-Adresse/datenbank?characterEncoding=UTF-8
Beim Auslesen ist dann keine besondere Einstellung notwendig.

Der neue Connector hat offensichtlich einen Nachteil:
Ich hole mir zunächst ein ResultSet, mache ein Connection.close() um dann z.B ResultSet.last() oder ResultSet.getRow() auszuführen. Mit dem neuen Connector gibt es dann eine Fehlermeldung! Die ich vermeiden kann wenn ich vorher das Connection.close() weglasse!

Für eine Lösung für MySql 4.0 wäre ich noch Dankbar!

carmue
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
L Tess4j Umlaute anzeigen Allgemeine Java-Themen 3
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
T Input/Output Konsole gibt trotz printf keine Umlaute aus Allgemeine Java-Themen 17
T Umlaute werden falsch gedruckt Allgemeine Java-Themen 2
F CaesarVerschlüsselung Umlaute Allgemeine Java-Themen 7
F Windows Umlaute Allgemeine Java-Themen 15
MiMa Umlaute beim Einlesen von Dateinamen Allgemeine Java-Themen 12
C Regex (Case insensitive und Umlaute) Allgemeine Java-Themen 4
B Zip umlaute Allgemeine Java-Themen 8
S jar-Datei stellt Umlaute nicht dar Allgemeine Java-Themen 6
K Javamail:Probleme mit der Darstellung von Umlaute in Subject Allgemeine Java-Themen 15
S Umlaute machen probleme Allgemeine Java-Themen 3
E HTML File mit Umlaute einlesen Allgemeine Java-Themen 8
R Base64_decode Umlaute Problem. Allgemeine Java-Themen 8
J Umlaute bei Commons-Fileupload Allgemeine Java-Themen 3
T Wie konvertiere ich Umlaute (ä -> ae) ? Allgemeine Java-Themen 7
J Umlaute in regulären Ausdrücken Allgemeine Java-Themen 3
kodela replace und die Umlaute Allgemeine Java-Themen 10
D zeichenerkennung für umlaute bei eingabe Allgemeine Java-Themen 4
S Mac OS JRE verhunst Umlaute Allgemeine Java-Themen 6
G Datei einlesen: Umlaute sind Fragezeichen Allgemeine Java-Themen 23
cover1012 Umlaute in id3 Tags Allgemeine Java-Themen 2
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
J JAR und Umlaute Allgemeine Java-Themen 4
B Umlaute über Konsoloe ein- und ausgeben Allgemeine Java-Themen 5
G Windows Shell Umlaute Problem Allgemeine Java-Themen 19
W Umlaute umwandeln bekomme nur Leerzeichen raus. Allgemeine Java-Themen 11
E Umlaute: FileWriter vs. FileOutputStream Allgemeine Java-Themen 3
W Umlaute in Dateien und Verzeichnissen. Bekomme Fehler Allgemeine Java-Themen 5
M Umlaute richtig dastellen? Allgemeine Java-Themen 4
X Umlaute im JAR-File Allgemeine Java-Themen 4
B Umlaute-Problem bei Plattform-Wechsel Allgemeine Java-Themen 9
F Umlaute in Text . Allgemeine Java-Themen 7
V Umlaute, sonderzeichen beim HTMLEditiorKit Allgemeine Java-Themen 2
O Probleme mit Umlaute Allgemeine Java-Themen 12
B html umlaute decoden Allgemeine Java-Themen 4
P Class.forName("com.mysql.jdbc.Driver"); ClassNotFoundException: com.mysql.jdbc.Driver Allgemeine Java-Themen 24
N MySQL mit Strings Allgemeine Java-Themen 3
B Schnittstelle zwischen MySQL und Apache Allgemeine Java-Themen 8
C MySQL Tabellen sortieren. Allgemeine Java-Themen 33
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
V Maven Maven ClassNotFoundException MySQL JDBC Treiber Allgemeine Java-Themen 1
G Eclipse Java findet MySQL Driver nach export nicht mehr Allgemeine Java-Themen 2
R Praktikums Projekt Java vs MySQL Allgemeine Java-Themen 91
C JPA und mysql Allgemeine Java-Themen 3
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
J javaFX mySQL Allgemeine Java-Themen 3
B MySQL Eintrag erstellen Allgemeine Java-Themen 3
P MYSQL Datenbank Dump einspielen Allgemeine Java-Themen 1
F eclipse, texlipse, R und mysql Allgemeine Java-Themen 2
S WebApp MySQL Connection Loss Allgemeine Java-Themen 10
H Tablemodel und mysql Allgemeine Java-Themen 8
T Datumsformat für MySQL Allgemeine Java-Themen 4
S ANT mysql treiber einbinden Allgemeine Java-Themen 4
F Ärger mit mySQL Allgemeine Java-Themen 3
S Java Methode um Daten aus MySQL auslesen Allgemeine Java-Themen 11
S Excel in mySQL importieren Allgemeine Java-Themen 3
neurox Tutorial: Hibernate mit MySQL (erste Schritte) Allgemeine Java-Themen 34
M JAVA Timestamp aus Mysql Allgemeine Java-Themen 4
T MySQl Datenbank als Array ausgeben Allgemeine Java-Themen 11
hdi Applet, JavaScript, PHP, mySQL -> Was brauch ich? Allgemeine Java-Themen 3
E MySQL-Datenbank <-> HashMap/TreeMap Allgemeine Java-Themen 1
H Daten aus MySQL datenbank auslesen und in ArrayList stecken Allgemeine Java-Themen 8
G mySQL und JTable Allgemeine Java-Themen 7
G MySql+Java+backup Allgemeine Java-Themen 23
I JAVA+ MySQL locales statement? Allgemeine Java-Themen 2
B Importieren in MySQL mit Java-Programm Allgemeine Java-Themen 15
G mysql datum umwandeln mittels jsp Allgemeine Java-Themen 10
G Mysql --> Datumsformat Allgemeine Java-Themen 7
V MySql db unter Java zum laufen bringen. Allgemeine Java-Themen 2
C Rechte unter WinXP, MySQL-Server per Runtime herunterfahren? Allgemeine Java-Themen 6
G Datum in MySQL Timestamp umwandeln? Allgemeine Java-Themen 10
G Daten aus MySQL-Datenbank an JFreeChart übergeben Allgemeine Java-Themen 3
G MySQL-Problem (LOAD DATA INFILE) Allgemeine Java-Themen 5
F Threadsicherheit von MySQL-Verbindungen Allgemeine Java-Themen 8

Ähnliche Java Themen


Oben