webentwicklung-frage-antwort-db.com.de

Muss ich wirklich Sonderzeichen in einer URL entfernen?

Ich habe einen FTP-Account für Freunde, über den wir Underground-Musikalben hochladen und über die Links die Downloads in einem Musikforum freigeben. Das Problem ist, dass die Albumnamen auf Französisch sind, so dass der Name viele Sonderzeichen enthält.

Die URL sieht also aus wie http://www.mydomain.com/downloads/Some Band - En français avec des caractères spéciaux (2013) [7'' EP].Zip

Für mich funktioniert es perfekt und ich kann die Datei über diese URL herunterladen, aber ich habe überall gelesen, dass spezielle Zeichen in URL schlecht sind.

Gibt es einen Grund, warum ich die Sonderzeichen entfernen oder die URL verschlüsseln muss? Kann jeder auf eine URL mit Sonderzeichen zugreifen oder können einige ältere Browser die Dateien nicht herunterladen?

Ich interessiere mich wirklich nicht für SEO oder irgendetwas anderes. Ich möchte nur, dass die Download-Links für alle funktionieren.

Da die Dateien über FTP hochgeladen werden, kann ich PHP nicht verwenden, um die Sonderzeichen mit einem regulären Ausdruck zu entfernen, daher weiß ich wirklich nicht, was ich tun soll.

6
anarchoi

Moderne Browser verschlüsseln die Sonderzeichen in der URL automatisch, bevor sie diese anfordern. Sie verwenden also bereits codierte Zeichen, Sie wissen es einfach nicht.

Ich habe http://www.url-encode-decode.com/ verwendet, um den Dateiteil Ihrer URL zu codieren (mit UTF-8):

http://www.mydomain.com/downloads/Some+Band+-+En+fran%C3%A7ais+avec+des+caract%C3%A8res+sp%C3%A9ciaux+%282013%29+%5B7%27%27+EP%5D.Zip

Das sollten Browser senden, wenn Sie ohne die Codierung verknüpfen. Um die Kompatibilität mit älteren Browsern zu gewährleisten, sollten Sie alle Ihre Links per URL codieren.

4

Ja, für eine einheitliche Kompatibilität mit verschiedenen Browsern und Anwendungen, auf die über das Internet zugegriffen werden kann, müssten Sie alle folgenden Elemente in einer URL kodieren:

  • Räume
  • ASCII-Steuerzeichen
  • Nicht-ASCII-Zeichen
  • Reservierte Zeichen
  • Unsichere Zeichen

Weitere Informationen dazu finden Sie hier: Welche Zeichen müssen codiert werden und warum?

Da Sie anscheinend die URLs kennen, können Sie versuchen, Online-URL-Encoder zu verwenden, wie im obigen Link oder im folgenden Link, der auch Informationen zur URL-Codierung enthält: rl Encode/Decode online

Testen Sie dann die URLs in so vielen Browsern wie möglich, um sicherzustellen, dass sie funktionieren, bevor Sie sie shaen. Sie können mehrere verschiedene Browser (z. B. Chrome, Firefox und Opera) herunterladen und zum Testen auf demselben Computer installieren.

Wenn Sie wissen, welche Zeichen verschlüsselt werden müssen, können Sie diese vor dem Hochladen in den Namen Ihrer Dateien ersetzen oder entfernen.

1
dan

... teile die Downloads in einem Musik Forum

Dies fügt nur die vorhandenen Antworten hinzu. Die URL muss irgendwann entweder implizit vom Browser (oder von der Forensoftware) oder explizit von Ihnen codiert werden.

Sie erwähnen ausdrücklich, dass Sie diese Links in einem Forum teilen. In vielen Foren werden Links in Forenbeiträgen automatisch codiert, sodass Sie dies möglicherweise nicht explizit selbst codieren müssen - dies hängt jedoch vom jeweiligen Forum ab.

Der Stapelaustausch (Markdown) verschlüsselt die Links in einem bestimmten Ausmaß, schlägt jedoch auf den nicht verschlüsselten Bereichen fehl (ebenso wie bei vielen anderen Forensoftwareprogrammen), wenn Sie einfach die nicht verschlüsselte URL in den Beitrag eingeben und dem Forum erlauben, die URL automatisch zu erkennen. Wenn das Forum jedoch über eine bestimmte Eingabeaufforderung zum Einbetten von Links verfügt, kann es wie bei Verwendung der Symbolleistenoption in Stack Exchange mit diesem OK umgehen:

HINWEIS FÜR DIE REDAKTIONEN: Korrigieren Sie die (defekten) Links unten nicht und setzen Sie sie nicht in <pre> -Tags ein
- Die Links sind so zu verstehen, dass sie nicht mehr funktionieren oder wie sie sind. es dient als Beispiel!

Link manuell eingegeben

(Wie Sie sehen, ist es beim ersten Leerzeichen kaputt)

[Link manuell nicht verschlüsselt eingegeben] ( http://www.example.com/downloads/Some Band - En français avec des caractères spéciaux (2013) [7 '' EP] .Zip)

Link, der über die Hyperlink-Option in der Symbolleiste eingegeben wurde

Link wird von der Forum Software korrekt codiert

Der obige Link ist codiert als:

<a href="http://www.example.com/downloads/Some%20Band%20-%20En%20fran%C3%A7ais%20avec%20des%20caract%C3%A8res%20sp%C3%A9ciaux%20%282013%29%20%5B7%27%27%20EP%5D.Zip" rel="nofollow">link is correctly encoded by the <em>forum</em> software</a>
1
MrWhite