# Insert Umlaute in Datenbank



## Selmau (22. Okt 2017)

Hallo Zusamnen

Ich möchte über jdbc Daten von einer JTexarea in eine Datenbank schreiben. Das habe ich auch heschafft, jedoch funktioniert es nicht mehr, sobal Umlaute wie ä, ö, ü im Text sind. 
Die Spalte in der Datenbank habe ich mit UTF-8 general deklariert und wenn ich in phpmyadmin direkt Daten hinzufüge funktioniert ä,ö,ü.
Ich vermute also, dass der String aus dem Texrarea die falsche codierung hat. Jedoch weiss ich nicht wie ich das in Eclipse ändern kann？

Hat jemand von euch Ahnung in diesem Bereich？

Gruss Selmau


----------



## Thallius (22. Okt 2017)

Womit kontrollierst du denn ob das mit den Umlauten geklappt hat? Mit phpMyAdmin? Das kannst du vergessen wenn Du nur die Spalte auf UTF gesetzt hast, aber die Datenbank selber noch in ISO Latin oder so ist. Ist auch keine gute Idee das Charset einer Spalte zu ändern. Setzt das Charset der DB und auch die Collation auf UTF-8 und es sollte klappen.

Wenn du nur eine Spalte auf UTF-8 setzt und dann mal einen Vergleich von dieer Spalte mit einer anderen Spalte machst, dann muss jedesmal der text konvertiert werden. Du glaubst gar nicht wie langsam deine DB dann plötzlich ist.

Gruß

Claus


----------



## Selmau (22. Okt 2017)

Ich habe die Datenbank auch schon kontrolliert und diese sowie der Zeichensatz der SQL Verbindung ist schon auf UTF-8 eingestellt.









Zeichensatz/Kollation der MySQL-Verbindung 

: utf8mb4 unicode ci
Server-Zeichensatz: UTF-8 Unicode (utf8)
Also dachte ich es müsste fast am Java Programm liegen.


Gruss Selmau


----------



## Thallius (22. Okt 2017)

Was heißt den jetzt MySQL Verbindung?

Geh mal in de MySQL console und lass dir den Charset ausgeben

https://stackoverflow.com/questions...haracter-set-a-mysql-database-table-column-is

Gruß

Claus


----------



## Selmau (23. Okt 2017)

Hab nun einiges Ausprobiert und gemerkt, dass ich die Kollation auf UTF 8 mb4 haben muss, weil ein "ä" die Kodierung E4 hat und somit 4 bytes benötigt.Mit UTF-8 habe ich anscheinend nur 3.

Nun habe ich aber immer noch der Fehler von der Datenbank: "Data too long for cloumn in row 1" obwohl ich bei der länge genügend angegeben habe.


----------



## Thallius (23. Okt 2017)

Warum liest du dir nicht einfach mal ein wenig Doku durch statt nur rumzuspionieren? Dann wüsstest du schon lange warum da eine 4 in mb4 steht. Und mb4 brauchst du nicht für Umlaute. Mb4 braucht man nur für Emoji und andere moderne Schriftzeichen. Sämtliche Sprachen und die dafür benötigten Zeichen passen auch in Standard utf8 Formate und die benötigen, wie du jetzt auch herausgefunden hast nur 3 Bytes. 

Und was meinst du mit du hast genügend Länge angegeben?


----------

