web-dev-qa-db-fra.com

Comment gérer les URL avec des caractères diacritiques

Je me demande comment gérer URLs qui correspondent à des chaînes contenant diacritique (á, ǚ, ´...). Je crois que ce que nous voyons le plus souvent est URLs où les caractères diacritiques ont été convertis en leur équivalent ASCII le plus proche, par exemple Rånades på Skyttis i Ö-vik converti en ranades-pa-skyttis-i-o-vik.

Cependant, selon la langue correspondante, cette conversion peut être incorrecte. Par exemple, dans German, ü doit être converti en ue et pas seulement u, comme indiqué avec le _ ci-dessous URL représentant le Bayern München chaîne comme bayern-muenchen:

http://www.bundesliga.de/en/liga/clubs/fc-bayern-muenchen/index.php

Cependant, ce que j'ai aussi remarqué, c'est que les navigateurs peuvent afficher des caractères non -ASCII lorsqu'ils sont codés en pourcentage dans la URL, qui est l'approche Wikipedia a choisi, par exemple, http://de.wikipedia.org/wiki/FC_Bayern_M%C3%BCnchen qui est représenté par:

enter image description here

Par conséquent, j’envisage l’approche suivante pour créer des slugs URL:

- (1) convertit les chaînes en remplaçant les caractères non -ASCII par leur représentation recommandée ASCII: Bayern München -> bayern-muenchen
- (2) convertit également les chaînes en percent encoding: Bayern München -> bayern_m%C3%BCnchen
- crée une 301 redirection de version (1) vers version (2)

La version (1) URLs pourrait être utilisée à des fins de marketing (par exemple, mywebsite.com/bayern-muenchen) mais la URLs qui serait affichée dans la barre de navigateur serait la version (2) URLs (par exemple, mywebsite.com/bayern-münchen).

Pouvez-vous prévoir des problèmes particuliers avec cette approche? (Wikipedia ne le fait pas et je me demande pourquoi, mis à part le fait qu'ils n'ont pas besoin de commercialiser leur URLs)

5
Max

Lorsque vous utilisez des caractères internationaux dans vos URL, vous devez prendre en compte quelques problèmes:

  • Le pourcentage de codage d'URL nécessite un jeu de caractères. Pour afficher correctement l’URL dans le navigateur Web, vous devez utiliser le jeu de caractères "UTF-8" lorsque le pourcentage d’URL codant pour votre mot de passe. Voir: Quel est le bon moyen de coder les caractères Unicode par URL?
  • Si votre URL contient beaucoup de caractères codés, l'URL peut être considérablement plus longue. Voici un exemple avec beaucoup de caractères japonais montrés dans un texte international et avec un codage d’URL:
    • http://www.dmoz.org/World/Japanese/オンラインショップ/地域別・エスニック/アジア/日本/
    • http://www.dmoz.org/World/Japanese/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%97/%E5%9C%B0%E5%9F%9F%E5%88%A5%E3%83%BB%E3%82%A8%E3%82%B9%E3%83%8B%E3%83%83%E3%82%AF/%E3%82%A2%E3%82%B8%E3%82%A2/%E6%97%A5%E6%9C%AC/
  • Votre URL ne peut pas toujours être affichée avec des caractères internationaux. Dans certains cas, votre URL s'affichera sous forme codée avec beaucoup de signes%.
    • Vieux navigateurs
    • Lorsque l'URL est copiée et collée (par exemple dans des forums)

Supprimer les signes diacritiques dans les URL peut être correct, mais ce n'est pas possible pour tous les caractères internationaux (comme le chinois et le japonais). Cela peut également dépendre de la langue: ü peut être remplacé par ue en allemand, mais par un simple u dans une autre langue.

1

Je choisirais la première approche, à savoir:

  1. remplacer tous les signes diacritiques par leurs homologues compréhensibles dans la langue donnée (par exemple, Münschen à Munschen),
  2. puis supprimez tous les signes diacritiques restants en les remplaçant par les lettres latin-1 non accentuées
  3. puis remplacez les espaces par des tirets (et plusieurs tirets par des simples).

Ensuite, vos URL seront lisibles par vos visiteurs et emballés avec de la nourriture dans les moteurs de recherche.

0
Alex