![]() |
Umlautproblem mit InternetOpenUrl
Hallo,
ich habe ein Problem mit Umlauten und anliegender Funktion.
Delphi-Quellcode:
Die URL, welche als Parameter auch Umlaute enthalten kann, wird eine PHP-Datei aufgerufenfunction LoadURL(URL: String): String; var IOpen, IURL: HINTERNET; Read: Cardinal; Msg: string; // <== begin Result := ''; try IOpen := InternetOpen( 'Mozilla 3.0 (compatible)', INTERNET_OPEN_TYPE_PRECONFIG, '', '', INTERNET_FLAG_NEED_FILE ); if IOpen <> nil then try IURL := InternetOpenUrl(IOpen, PAnsiChar(URL), nil, 0, INTERNET_FLAG_NO_UI, 0); if IURL <> nil then try SetLength(Msg, 4096); // <==== repeat if InternetReadFile(IURL, @Msg[1], 4096, Read) then // <=== Result := Result + Copy(Msg, 1, Read) // <=== else Break; until Read = 0; finally InternetCloseHandle(IURL); end; finally InternetCloseHandle(IOpen); end; except end; end; <?php if(isset($_GET['user'])) $user =TRIM($_GET['user']); echo $user; ?> In meinem PHP-File erscheint dieser Parameter dann ohne Umlaute. z.B. ich übergebe als Parameter Gläser, in meinem PHP-File kommt als Parameter Glser an. Ich denke dies ist ein Codierthema, habe aber keine Idee, wie ich dies in den Griff bekomme Jemand eine Idee ?? |
Re: Umlautproblem mit InternetOpenUrl
Wie schauen die Daten den in der URL aus wenn du sowas mit dem Browser machst?
Oft wird hier iene Hex-Codierung von Sonderzeichen verwendet. Diese musst du dann auch selbst durchführen. |
Re: Umlautproblem mit InternetOpenUrl
Hallo,
wenn ihg die Daten direkt in den Browser eingeb http:\\meinedomain.de\test.php&user=Gläser erfolgt eine korrekte Übergabe, von daher muss ich davon ausgehen, dass die Ursache InternetOpenUrl(IOpen, PAnsiChar(URL), nil, 0, INTERNET_FLAG_NO_UI, 0); hier liegt. |
Re: Umlautproblem mit InternetOpenUrl
Die Ursache liegt bei dir. Nur weil der Browser für dich die Codierung übernimmst ist es nicht gleich ein Fehler das die Api-Funktion das nicht macht. Schließlich kann die Funktion nicht ahnen wie du codieren willst. Codiere als einfach selbst und übergib den codierten Wert dann an die Funktion.
|
Re: Umlautproblem mit InternetOpenUrl
Hallo,
OK, ich bin in der Thematik nur "oberflächlich" unterwegs und lerne tagtäglich etwas Neues (ist halt nur Hobby). Hier meine nun eingeführte Lösung, die ggf Anderen auch mal helfen könnte.
Delphi-Quellcode:
params := 'user='+ UTF8Encode(TRIM(user)); // Umlaute umwandeln, damit diese beim Übertragen nicht verloren gehen.
result:= LoadURL('http://www.meinedomain.de/Test.php?'+params); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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