AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy und Umlautdomains
Thema durchsuchen
Ansicht
Themen-Optionen

Indy und Umlautdomains

Ein Thema von himitsu · begonnen am 25. Aug 2010 · letzter Beitrag vom 25. Aug 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

Indy und Umlautdomains

  Alt 25. Aug 2010, 08:48
Die Indy10 im Delphi 2010 behandeln keine Umlautdomains.

Können das die "normalen" Indy oder muß ich doch rausfinden, wie man das selbst umcodiert?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Indy und Umlautdomains

  Alt 25. Aug 2010, 08:59
ich denke da wirst du selbst den Punycode implementieren müssen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Indy und Umlautdomains

  Alt 25. Aug 2010, 09:09
Hab ich befürchtet ... hätte ja sein können, daß man es inzwischen schon implementiert hat.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Indy und Umlautdomains

  Alt 25. Aug 2010, 10: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Aug 2010 um 10:35 Uhr)
  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 23:49 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