Ist zwar keine optimale Lösung, aber für mich reicht es erstmal aus.
- Punycode Convert Unit v.1.0 von Torry runterladen
- in TPunyClass.Encode dieses
Delphi-Quellcode:
if Length(output) < Length(text) then
if Length(output) > 0 then output := output + Delimiter;
durch jenes
Delphi-Quellcode:
if Length(output) < Length(text) then
begin
if Length(output) > 0 then output := output + Delimiter;
output := 'xn--' + output;
end;
ersetzen
- in TPunyClass.Decode am Anfang dieses
Delphi-Quellcode:
if Copy(input, 1, 4) <> 'xn--' then
begin
Result := input;
exit;
end else
input := Copy(input, 5);
einfügen
Bei mir ging es nun einfach, da die URLs eh zusammengesetzt werden.
Ansonsten muß man nun
- die Domain extrahieren
- die Domain aufplitten (z.B. Explode an allen '.')
- jeden Teil einzeln mit Punycode kodieren
- und zum Schluß die Domain wieder zusammensetzen und wieder in die URL einfügen.
Grund:
- es wird nur die Domain kodiert (Pfade und Sonstiges bleiben unangetastet)
- die TLD darf nicht kodiert werden, aber das wäre egal, da sich hier durch Punycode zumindestens nichts ändern würde
- die SLD und alle Subdomains müssen getrennt kodiert werden