AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit Textcodierung bei Indy TCP Client / Server
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Textcodierung bei Indy TCP Client / Server

Ein Thema von AndyK · begonnen am 9. Jun 2023 · letzter Beitrag vom 12. Jun 2023
Antwort Antwort
AndyK

Registriert seit: 21. Mär 2006
12 Beiträge
 
#1

Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 9. Jun 2023, 21:45
Hallo,

ich arbeite derzeit an zwei Anwendungen, die die Indy TCP-Komponenten nutzen. Nach Empfang von "einfachen" Texten fällt auf, dass bestimmte Zeichen nicht korrekt dargestellt werden. Ich habe versucht, diese mittels indytextencoding_xxx korrekt darzustellen - leider bislang erfolglos.

Mein Wissensstand ist, dass Indy ANSI-kodiert arbeitet, wenn nichts anderes ausgewählt. Richtig? Aktuell geht es um Anführungszeichen und Umlaute, die als Fragezeichen (?) dargestellt werden.

Text wird so verschickt:
IdTCPClient.IOHandler.WriteLn('Text mit Umlauten innerhalb von Anführungszeichen: "öäü"');

Hierüber wird "gelesen":
Ausgabestring := IdTCPClient.IOHandler.ReadLn();

Der "Ausgabestring" zeigt sich dann wie folgt: "Text mit Umlauten innerhalb von Anführungszeichen: ?????"

Ich bin ehrlich gesagt, auch nach etlichen Seiten lesen, nicht wirklich klüger was Textcodierungen angeht Hätte jemand Gedanken hierzu, wie ich das lösen kann?

Besten Dank
Gruß
Andy

Delphi 10.4
Indy 10.6.2.0
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 11. Jun 2023, 15:21
.. merkwürdig, dass das 'ü' in Anführungszeichen richtig übertragen wurde.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AndyK

Registriert seit: 21. Mär 2006
12 Beiträge
 
#3

AW: Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 11. Jun 2023, 15:31
Das passiert, wenn man es per Hand eintipp. Natürlich ist jedes "ü" fehlerhaft...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 11. Jun 2023, 18:23
Ich finde es komisch, dass das ohne Angabe eines Encodings nicht auf beiden Seiten mit dem gleichen Standardwert klappt. Du kannst es aber einmal explizit mit UTF-8 Kodierung versuchen. Readln und Writeln unterstützen beide als zweiten Parameter das Encoding, z.B. würde ich es mit IndyTextEncoding_UTF8 aus der Unit IdGlobal versuchen und das bei beiden Funktionen übergeben.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von arcticwolf
arcticwolf

Registriert seit: 3. Aug 2021
Ort: Erfurt
41 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 11. Jun 2023, 19:40
Ich würde vermuten es handelt sich bei deinem Problem um eine Codepage-Konvertierung. Wenn zum Beispiel ein String, welcher ein Euro-Zeichen (€) enthält, in die Codepage 850 konvertiert wird, steht an der Stelle des €-Zeichens ein Fragezeichen, weil die Codepage 850 kein €-Zeichen enthält.

So bringt folgendes Programm
Delphi-Quellcode:
Type AnsiStr720 = Type AnsiString(720);

Procedure Test;
Var
  uString : Unicodestring;
  aString : AnsiStr720;
begin
  uString := 'Text mit Umlauten innerhalb von Anführungszeichen: "öäü"';
  Writeln(uString);
  aString := uString;
  Writeln(aString);
end;
folgende Ausgabe
Code:
Text mit Umlauten innerhalb von Anführungszeichen: "öäü"
Text mit Umlauten innerhalb von Anf?hrungszeichen: "???"
weil es in der Codepage 720 (=Arabisch) keine Umlaute gibt.

Es könnte sich also bei Dir um eine Codepage handeln, die weder Umlaute noch das doppelte Anführungszeichen enthält um so ein Ergebnis wie von Dir beschrieben zu erhalten.
Wolfgang
  Mit Zitat antworten Zitat
AndyK

Registriert seit: 21. Mär 2006
12 Beiträge
 
#6

AW: Problem mit Textcodierung bei Indy TCP Client / Server

  Alt 12. Jun 2023, 20:15
Hallo und danke für Eure Gedanken.
Ich habe nun im Test-Server, sowie Clienten auf IndyTextEncoding_OSDefault gestellt. Damit funktioniert es prima.

Gruß
Andy
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 15:01 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