Kuriose Encodierungbei UTF8

Status
Nicht offen für weitere Antworten.

nocturne

Bekanntes Mitglied
Hi, ich habe ein Problem mit der Verbindung meines ApplikationServer(Linux) zum Live-Datenbankserver.

ApplikationServer und Datenbankserver liegen auf einem Server, die Applikation greift per "localhost" auf die datenbank zu.

Verbindung Lokal auf DatenbankServer : Problemlos, volles UTF8
Verbindung Applikation auf DatenbankServer: Sonderzeichen werden komisch dargestellt.

für Letzteres muss ich alle Buchstaben umkodieren!
z.B. von 0xc3 0xb6 (ö) zu 0xc3 0x00 0xb6 0x00
also zwischen jedes byte ein "0x00".

dann ist es umgekehrt:

Verbindung Lokal auf DatenbankServer : Sonderzeichen werden komisch dargestellt.
Verbindung Applikation auf DatenbankServer: Problemlos, volles UTF8


MySQL 5.0, java 1.6
Edit: "entfernt " rausgeschmissen.
 

Atze

Top Contributor
Hi,

ich glaub da fehlen n paar infos, bzw. ich versteh die logik nicht ganz.

ich hab das so verstanden, dass applikation und datenbank auf einem rechner laufen, oder nicht?

aber was ist dann der "entfernte" datenbankserver?

falls es zwei maschinen sind, was sind denn dort für charsets eingestellt, bzw was für einen charset nutzt die datenbank?


grüße
 

nocturne

Bekanntes Mitglied
Hallo Atze,
Atze hat gesagt.:
Hi,
1. aber was ist dann der "entfernte" datenbankserver?

falls es zwei maschinen sind, was sind denn dort für charsets eingestellt, bzw was für einen charset nutzt die datenbank?


grüße

Zu 1: der Live-Server


Es sind 2 Computer, ein Entwicklungsrechner und ein Live-Server.
Es gibt 1 Datenbank, die vom Live-Server.


der aufruf von locale ergab:
locale
LANG=en_US.utf8
LC_CTYPE="de_DE.utf8"
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=de_DE.utf8


der Charset der Datenbank spielt anscheinend keine Rolle:
ich habe alle typen ausprobiert:
ucs2, utf8, latin1 usw.

auch grüße
 

Atze

Top Contributor
hm, es scheint aber auf jeden fall etwas mit der verbindung zu tun zu haben, bzw mit den unterschiedlichen rechnern.

denn ohne "umcodierung" deinerseits klappt es ja auf den beiden "direkt" verbundenen, und mit der entfernten applikation nicht

und mit "umcodierung" klappt es nur auf dem entfernten, also umgekehrt.

somit scheint die übertragung bzw der austausch nicht wirklich reibungslos zu funzen

was sind das denn für systeme, beide linux?

in was für nem container läuft denn deine anwendung, in nem tomcat?
 

nocturne

Bekanntes Mitglied
Entwicklungsrechner : winxp
Server Linux vServer 2.6 (Distro. find ich nicht heraus)

Applikation ist Hinter framework der Eigenentwicklung,
 

Atze

Top Contributor
hm, was ist denn "framework der Eigenentwicklung"?

also dann ist es ja anscheinend ein problem des frameworks oder der applikation auf dem xp rechner

denn die kommunikation zwischen den systemen auf der linux kiste scheint ja zu klappen
 

nocturne

Bekanntes Mitglied
Atze hat gesagt.:
hm, was ist denn "framework der Eigenentwicklung"?

also dann ist es ja anscheinend ein problem des frameworks oder der applikation auf dem xp rechner

denn die kommunikation zwischen den systemen auf der linux kiste scheint ja zu klappen

Du hast jetzt alle Programme als Problem dargestellt, bis auf ein Program: den SQL-Manager mit dem die Daten eingepflegt werden.
Ich denke das ist genau andersherum. Diese Fakten beschreiben meine Vermutung:
1. Fakt: Konsole in Windows kann mit EMS-MySQL Manager 2007 eingepflegte öäüß nicht darstellen.
2. Fakt: EMS-MySQL Manager 2007 bricht kritisch ab wenn über die Konsole öäüß eingepflegt wurden.
3. Fakt: Von der Applikation geänderte Datenbankinhalte führen zum Programmabbruch von EMS-MySQL Manager 2007.
4. Fakt: Von der Applikation geänderte Datenbankinhalte werden problemlos von der Applikation verstanden.
5. Fakt: EMS-MySQL Manager 2007 speichert ein 'ö' so ab: 0xc3 0x00 0xb6 0x00 (wo eigentlich 0xc3 0xb6)

6. Fakt: die Lokale schleife auf dem Server (localhost) lässt Verbindungen per UTF8 zu, sowohl MySQL alsauch HTTP. Remote vom Arbeitsplatzcomputer aber gibts keine unterstützung von UTF8 über HTTP oder MySQL.
 

Atze

Top Contributor
na wenn du das weißt, dann schmeiß diesen blöden EMS-MySQL Manager 2007 weg und pfleg über die console :)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben