C# i Java / Kodowania Znaków Dwie Strony

0

Witam,

Mam następujący problem. Dwie aplikacje rozmawiają ze sobą :-) ale nie mogą się za bardzo dogadać.
Klient -> Serwera
Serwer Odbiera Wszystko bardzo ładnie i wyświetla bez zniekształceń.
Serwer -> Klienta
- I tu się zaczynają schody bo w miejscu ĄŻŹĆÓĘŁŚŃ są krzaki konkretnie jeden krzak (taki czarny rąb ze znakiem zapytania).

Moje pytanie jest takie co i jak mogę poprawić, żeby się ta komunikacja ładnie kończyła?

Próbowałem już zmiany sytem.text.encoding. na różne dostępne kodowania włącznie z Default i UNICODE w pierwszym przypadku dostaję krzaczory totalne w miejscu polskich znaków, w drugim odczyt w ogóle chyba się poprawnie nie wykonuje, bo tekstu ni ma, czyta znaki jako puste.

Związany Kod
W jednym domku Klient C#
Wysyłanie do Serwera Javy

                byte[] DaneBinarne = System.Text.Encoding.UTF8.GetBytes(Tekst + "\n");
                if (Gniazdo != null)
                {
                    Gniazdo.Send(DaneBinarne);
                }

Odczyt z Serwera Javy

                char[] Znaki = new char[ile + 1];
                System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder();
                int dlugoscZnaku = d.GetChars(IDGniazda.buforDanych, 0, ile, Znaki, 0);
                String S = new String(Znaki);
                DopiszDoRTB(richTextBox1, S);

W drugim domku Serwer Javy
Wysyłanie do Klienta C#


this.Wyjscie.format(Tekst, "UTF8");

Odczyt od Klienta C#


Tekst = Wejscie.readLine();
0

Może zrób to na WCF-ie? robiłem kiedyś komunikator, z serwerem na c# i klientami java/c# i nie było zadnego problemu z wymianą danych, wcf do komunikacji używa soap-u a dane zapisuje xmlem bodajże.

0

Pomysł dobry tylko WCF to jest jakaś nakładka sieciowa, a niestety założeniem tego projektu jest komunikacja po socket'ach, to że chciałbym aby była do tego z poprawnym kodowaniem znaków to już mój prywatny problem niestety.

1 użytkowników online, w tym zalogowanych: 0, gości: 1