AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Webservice

Ein Thema von InschenierSB · begonnen am 25. Apr 2018 · letzter Beitrag vom 17. Mai 2018
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: Webservice

  Alt 15. Mai 2018, 10:20
Wir benutzen AnsiToUTF8 in D6 für ein altes Webserver-CGI-Projekt und das geht ganz gut. Dort werden Tokens in einer UTF8 codierten HTML-Vorlagen-Datei ersetzt, damit die üblichen Verdächtigen (Umlaute, scharfes S usw.) in den Text kommen und das klappt.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Webservice

  Alt 15. Mai 2018, 12:44
Da es sich bei utf8 um 8Bit-Zeichen(folgen) handelt, kannst Du problemlos mit Ansi-Strings arbeiten. Du mußt "nur" für die richtige Kodierung sorgen falls AnsitUtf8 in D6 nicht vorhanden ist, bastelst Du es Dir halt selber:

Delphi-Quellcode:
function MyAnsitoUTF8(instr:ansistring):ansistring;
var
  i : integer;
begin
  for i:=1 to length(instr) do
  case instr[i] of
    'ä' : result:=result+#$C3+#$A4;
    .....
    else
      result:=result+instr[i];

  end;
end;
Wobei Du natürlich noch die Codepage der Ansi-Codierung beachten mußt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
InschenierSB

Registriert seit: 25. Apr 2018
Ort: Regensburg
39 Beiträge
 
#3

AW: Webservice

  Alt 17. Mai 2018, 06:39
Da es sich bei utf8 um 8Bit-Zeichen(folgen) handelt, kannst Du problemlos mit Ansi-Strings arbeiten. Du mußt "nur" für die richtige Kodierung sorgen falls AnsitUtf8 in D6 nicht vorhanden ist, bastelst Du es Dir halt selber:

Delphi-Quellcode:
function MyAnsitoUTF8(instr:ansistring):ansistring;
var
  i : integer;
begin
  for i:=1 to length(instr) do
  case instr[i] of
    'ä' : result:=result+#$C3+#$A4;
    .....
    else
      result:=result+instr[i];

  end;
end;
Wobei Du natürlich noch die Codepage der Ansi-Codierung beachten mußt.

Gruß
K-H

Guten Morgen,
vielen Dank an Jumpy und p80286, also es funktioniert unter Delphi 6. Die Funktion zum konvertieren ist schon in Delphi 6 enthalten.
Nachfolgend ein Auszug aus dem Code, falls irgendwann mal andere Leute vor dem gleichen Problem stehen (über die Loop werden nur die einzelnen Elemente der Stringlist übergeben).
Grüße Sebastian
Delphi-Quellcode:
  //Ausgabe zusammenstellen
  HTTP_Stream.Position:=0;

  my_Response_utf8.LoadFromStream(HTTP_Stream);

   // Loop für die StringList Antwort
  For e:= 0 to my_Response_utf8.Count -1 do
  begin
        my_Response_Ansi.Add(utf8toansi(my_Response_Utf8[e]));
  end;

  Memo1.Lines.AddStrings(my_Request_Ansi);
  Memo2.Lines.AddStrings(my_Response_Ansi);
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz