kostenloser Webspace werbefrei: lima-city


Zeichencodierung schrottet DB-Abfrage

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    szmast3r

    szmast3r hat kostenlosen Webspace.

    Hallo,

    ich habe mein Projekt in Eclipse unter der Zeichencodierung Cp1252 geschrieben. Da dort aber keine Umlaute ausgegeben werden können, soll die Codierung auf UTF-8 umgestellt werden. Also gings in die Projekt properties und auf UTF-8 geändert.
    Nachdem die ganzen 4-ecke durch Umlaute manuell ersetzt wurden und das Projekt "bereinigt" wurde, gings ans testen und es kamen kuriose Fehler. Es wurden Zeilen übersprungen oder manche Funktionen nichtmal ausgeführt.

    Beim 2. Versuch ist das komischer Weise nicht mehr der Fall. Dafür streikt nach wie vor die DB-Abfrage. Eine Klasse (DB-Zugriff) sorgt dafür, dass SQL-Befehle auf eine Access-Datenbank ausgeführt werden. Aufeinmal kommt der Fehler, dass er die Tabelle Schlüssel nicht finden kann, oder sie existiert nicht. Vorher hatte aber die Abfrage perfekt funktioniert! Die Tabelle existiert auch.

    Kann es sein dass Microsoft nicht mit anderen Codierungen so klar kommt, außer mit seiner eigenen (Cp1252)?
    Das wäre fatal für eine Access-Datenbank und ich kann es mir ehrlichgesagt nicht vorstellen.

    Kann man diesen Fehler irgendwie beheben? Googlen hat nichts gebracht :(
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich weiß nicht, wie das bei Access ist, aber bei MySQL kann man bei der Erstellung der Tabelle angeben, welche Kodierung die Inhalte haben sollen. Tabellen- und Spaltennamen würde ich generell nicht mit Umlauten angeben (i.e. mich auf [a-z0-9-_]+ beschränken), ansonsten führt es früher oder später garantiert zu Problemen. Wenn die Tabelle wirklich "Schlüssel" heißt, würde ich direkt in Erwägung ziehen, sie nach dem Anlegen von Sicherungskopie(n) der Datenbank in "schluessel" umzubenennen und den zugreifenden Code entsprechend anzupassen.

    Ansonsten könnte man das Problem (meines Erachtens unsauber) möglicherweise damit lösen, dass man die Inhalte der Datenbank als "Binärdaten" speichert, in denen ein UTF-8-codierter String enthalten ist und die Kommunikation mit der Datenbank weiterhin abwickelt, wie gehabt.

    Übrigens: Cp1252 kann sehr wohl Umlaute, zumindest laut Wikipedia, UTF-8 ist aber generell zu empfehlen, weshalb ich nicht nocheinmal alles zurückändern würde.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!