# Kuriose Encodierungbei UTF8



## nocturne (10. Jan 2008)

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 (10. Jan 2008)

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 (10. Jan 2008)

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?
> ...



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 (10. Jan 2008)

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 (10. Jan 2008)

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

Applikation ist Hinter framework der Eigenentwicklung,


----------



## Atze (10. Jan 2008)

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 (11. Jan 2008)

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 (11. Jan 2008)

na wenn du das weißt, dann schmeiß diesen blöden EMS-MySQL Manager 2007 weg und pfleg über die console


----------

