2009-09-24 7 views
4

/bg/продукти/81 peau tonifiant-masquenon anglais caractères dans browers url

Comment obtenir ce spectacle comme ça dans le chemin d'URL du navigateur, au lieu de

/bg /% d0% bf % d1% 80% d0% est% d0% b4% d1% 83% D0% BA% d1% 82% D0% B8/81-peau tonique masque

  1. HttpUtility.UrlEncode ("/ bg/продукти/81-skin-toning-mask ") - même résultat (caractères illisibles pour la partie продукти)
  2. HttpUtility.UrlEncodeUnicode ("/bg/продукти/81-skin-toning-mask ") - ne rend même pas correctement le lien (étrange)
  3. HttpUtility.UrlPathEncode ("/ bg/продукти/81 peau tonifiant-masque") - même résultat (de caractères illisibles pour une partie продукти)

Répondre

3
http://www.example.com/bg/продукти/81-skin-toning-mask 

est un IRI.

http://www.example.com/bg/%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/81-skin-toning-mask 

est la représentation correcte URI de ce qui précède IRI.

Les deux sont valides et fonctionneront aussi bien que la valeur d'un <a href> dans les navigateurs modernes. Il est normalement considéré comme plus approprié aux anciens navigateurs d'utiliser la version URI, mais lorsque vous faites cela, IE (bizarrement) affiche la version URI dans la barre d'adresse au lieu de la belle version IRI, même si c'est la même adresse et IE envoie la même demande pour l'obtenir. Aussi certains caractères IE ne s'afficheront jamais non codés (bien que le russe fonctionne pour moi). Par conséquent, si vous souhaitez que votre barre d'adresse soit plus attrayante dans IE que dans les anciens navigateurs pré-IRI, il vous suffit d'écrire la chaîne non-ASCII directement sur la page, en échappant uniquement aux caractères ASCII hors bande. Vos pages devraient être servies comme UTF-8 pour que cela fonctionne de manière fiable sur différents paramètres d'IE, mais de nos jours, tout ce que vous faites devrait être de toute façon UTF-8.

0

La définition des caractères autorisés dans les URL (Uniform Resource Locator) dans RFC 1738 ne prend pas en compte les jeux de caractères non-latins (non US-ASCII).

Désolé, c'est terriblement chauvin, mais pensez à quel point il serait difficile de supporter tous les alphabets !?

+0

Ce n'était pas si difficile si cela avait été conçu de cette façon depuis le début et il n'y avait pas des milliers de programmes différents installés sur des millions de serveurs qui dépendent de la norme non-Unicode. –

+0

Les caractères non-ASCII sont parfaitement valides dans les URI. Vous avez juste à UTF-8, puis URL les encoder. Le formulaire où vous voyez les caractères eux-mêmes est appelé IRI et est pris en charge par tous les navigateurs modernes. – bobince

+1

Donc, vivre dans un pays anglophone signifie que je n'ai pas été exposé à ceux-ci. Mais quand je vais au lien fourni par Daniel, et que je clique sur l'un des liens, je peux voir Cyrillic dans l'URL. ** Jamais vu ça avant! ** Maudire l'accident de ma naissance .. – pavium

Questions connexes