AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Asiatischen zeichen

Ein Thema von XzErO · begonnen am 13. Jun 2011 · letzter Beitrag vom 13. Jun 2011
Antwort Antwort
Seite 1 von 2  1 2      
XzErO

Registriert seit: 5. Jun 2011
7 Beiträge
 
#1

Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 00:28
Hallo,

Ich bin noch Anfänger, also seit mir bitte nicht böse.

Also ich habe ein Problem mit Delphi 2009. Ich bin gerade dabei das ich ein Chat Programmiere (Socket Verbindung) So jetzt wollte ich mit (Socket.SendText) eine Nachricht senden u. mit (Socket.ReceiveText) empfangen soweit geht auch alles, nur bei der Ausgabe (Memo1) werden nur Asiatischen Zeichen ausgegeben.

Ich habe schon Google benützt nur finde ich nichts.

Bitte helft mir.

Danke.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 00:33
Was sagt der Debugger zu dem Text, welcher über ReceiveText ankommt?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
XzErO

Registriert seit: 5. Jun 2011
7 Beiträge
 
#3

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 00:39
Was sagt der Debugger zu dem Text, welcher über ReceiveText ankommt?
Hallo himitsu,

Fehler bekomme ich keinen.

Client:
Delphi-Quellcode:
procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;
Server:
Delphi-Quellcode:
procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var i:integer;
Nachricht:AnsiString;
begin
Nachricht:=Socket.RemoteAddress + ': ' + Socket.ReceiveText;
Memo1.Lines.Add(Nachricht);

for i := 0 to Server.Socket.ActiveConnections - 1 do
  Server.Socket.Connections[i].SendText(Nachricht);
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 01:30
Von welchem Typ ist ReceiveText bei dir?

Delphi-Quellcode:
procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var s: AnsiString;
begin
  s := Socket.ReceiveText;
  Memo1.Lines.Add(s);
end;
Was sagt denn nun der Debugger?
Was steht hier in S drinen.

PS: http://www.delphipraxis.net/133720-i...erzeichen.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 09:50
Hallo,

Delphi-Quellcode:
procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var i:integer;
Nachricht:AnsiString;
Du schickst deine Nachricht als AnsiString und wunderst dich,
dass asiatische Zeichen nicht korrekt übertragen werden ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 10:06
Ich hatte es so verstanden, daß er was "Deutsches" versendet und Asiatisch ankommt,
Also ein tyypisches Unicodeproblem, wenn man was als Ansi vorliegen hat und es als Unicode interpretieren würde.
Und SendText ist sowieso nur ANSI.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 11:31
Ich denke mal, dass das ein Bug in Delphi2009 ist. Wie das bei neueren Versionen verbessert wurde, weiß ich nicht.
Delphi-Quellcode:
// aus der unit ScktComp bei Delphi 2009

function TCustomWinSocket.ReceiveText: string;

// aber:

function TCustomWinSocket.SendText(const s: AnsiString): Integer;
Da ist wohl die Portierung nach Unicode nicht ganz vollständig.
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 11:35
Jupp, in D2010 ist ReceiveText ein AnsiString.

Wenn das so ist, dann bleibt nur ein Bugfix (neues Delphi kaufen, fallsda Emba ungern Updates rausgibt ... oder wurde dieses doch tatsächlich mal in einem Update gefixt?)
> Neuste Updates schon installiert?

Aber da Indy eh eine Fremdkomponente ist, kann man diesen Teil auch selber upgraden.
> www.indyproject.org
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 12:09
Ja, das ist ein Bug (auch in D2010 offenbar), der sich durch einen Class Helper aber ganz leicht umgehen lässt wie ich hier gezeigt habe:
http://www.delphi-forum.de/viewtopic...=641063#641063

Natürlich könnte man auch auf AnsiString zurück gehen wie es Embarcadero bei XE getan hat, wenn man das denn möchte. Das Prinzip ist dasselbe.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

AW: Probleme mit Asiatischen zeichen

  Alt 13. Jun 2011, 12:23
Also, mit aktuellen Updates ist es im 2010 schon gefixt (AnsiString).
Da 2010 und 2009 etwa die selben Updatesphasen hatten, könnte es auch shcon im 2009 weg sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz