Thema: Delphi Indy und Umlautdomains

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Indy und Umlautdomains

  Alt 25. Aug 2010, 11:27
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
$2B or not $2B

Geändert von himitsu (25. Aug 2010 um 11:35 Uhr)
  Mit Zitat antworten Zitat