9
votes

Est-il conseillé de disposer de caractères non ASCII dans l'URL?

Nous travaillons actuellement sur un projet I18N. Je me demande quelles sont les complications d'avoir les caractères non-ASCII dans l'URL. Si ce n'est pas conseillé, quelles sont les alternatives pour faire face à ce problème?

edit (en réponse à la réponse de Maxym): Le site va être local dans un pays spécifique et je n'ai pas besoin de m'inquiéter du monde entier d'accéder à ce site. Je comprends que du point de vue de la convivialité, c'est vraiment ennuyeux . Quel est l'autre problème technique associé à cela?


3 commentaires

Si vous utilisez un non-ASCII, comment les gens vont-ils taper avec un clavier standard ???


Leur clavier standard gère-le.


Eh bien, si vous travaillez sur le site I18N, cela signifie que vous traduisez votre site en quelques langues ... Cela signifie que vous vous attendez à des personnes d'autres pays, ce qui rend votre site à ne pas que votre local :) bien sûr, je peux me tromper, Si votre peuple de votre pays utilise quelques langues, spécifique à votre pays seulement


4 Réponses :


4
votes

Je dirais non. La raison est simple -> Si vous comptez sur le public mondial, ce serait un gros problème pour que les gens de taper votre URL. Je vis dans le monde "Cyrillic", il est possible de créer des URL cyrilliques, mais personne ne réussit avec cela, car même nous sommes assez paresseux de changer de langue et de s'habituer à taper latin ...

mise à jour:

Je ne peux pas dire des alternatives, mais parfois certaines langues ont un substitut de lettre informelle ou formelle, par ex. En allemand, vous pouvez écrire Ö mais dans l'URL, vous pouvez voir OE. Vous pouvez également envisager des mots anglais, ou des mots avec des sons similaires (afin que les personnes de votre pays puissent remettre à cette rédaction et d'autres "pays" ne feront pas de nuit


8 commentaires

@maxym et s'il veut que seuls les Russes voient le site?


@Herrow: en russe, vous pouvez utiliser la translitaration ... Eh bien, aucune idée de savoir comment épeler ce mot en anglais, sa signification: des mots cyrilliques écrits avec des lettres latines (ou parfois même des numéros sont utilisés). Beaucoup de gens l'utilisent ici juste à la discussion (terrible à lire, mais ils ne peuvent pas aider à le faire)


Merci maxym! Je ne suis pas inquiet pour le grand public, le site va être assez local dans un pays.


@Ravi, parfois, nous voyagons :) Et quand je voyage 99% que je n'ai pas accès au clavier cyrillique. En outre, pensez à "Mon site est assez local" ne pense pas à l'avenir. Aujourd'hui, vous le pensez, demain, vous obtiendrez plus :) Soyez simple et flexible!


Désolé, juste une phrase complète de mon précédent. Commentaire: «Aujourd'hui, vous le pensez, demain, vous allez être disposé à atteindre plus»


@maxym et si le russe ne connaît pas les lettres anglaises /


@Joe Skeet (vous avez changé votre nom de Herrow?) Eh bien, je suis ukrainien et je ne connais personne qui ne connaît pas les lettres latines. Je tiens compte même des enfants de 6 ans. À l'école, nous étudions l'anglais ou l'allemand ou le français, parfois même peu. La même chose en Russie ... et nous avons beaucoup de choses de l'étranger, alors les enfants sont toujours intéressants comment lire son nom, etc. Je suis sûr que vous n'êtes jamais allé à l'Ukraine ou à la Russie, ni Biélorussie, etc.)


@maxym si vous êtes au Cambodge, vous n'apprenez pas l'anglais, vous apprenez à rester en vie



1
votes

Vous pouvez utiliser des caractères non-ASCII dans une URL, mais c'est moche car les caractéristiques spéciales doivent être codées comme ceci: http://www.w3schools.com/tags/ref_urlencode.asp


2 commentaires

-1. Les navigateurs Web modernes sont capables de traiter cela automatiquement.


@Larsman: Mais certains navigateurs Web modernes brisent intentionnellement l'affichage des caractères non latins, sauf dans certaines situations afin de lutter contre les attaques de phishing ...



7
votes

Il est possible d'utiliser des noms de domaine non-ASCII / non latin utilisant Idna . En outre, vous pouvez toujours utiliser un codage en pourcentage (comme % 20 pour espace) dans les URL. RFC 3986 recommande le codage UTF-8 combiné avec des percents:

Les données doivent d'abord être codées comme octets selon l'UTF-8 Encodage de caractère; alors seulement ceux octets qui ne correspondent pas à caractères dans l'ensemble non réservé devrait être codé pour cent. (...) Pour exemple, le personnage A serait représenté comme "A", le personnage Lettre majuscule latine A avec tombe serait représenté comme "% c3% 80", et La lettre de caractère Katakana A serait être représenté comme "% E3% 82% A2".

Clients modernes (navigateurs Web) sont capable pour transformer en pourcentage de codage et unicode , donc l'URL est transférée sous forme d'ASCII mais semble jolie pour l'utilisateur.

Assurez-vous que vous utilisez un cadre Web / CMS qui comprend également ce codage, afin de simplifier l'entrée URL des webmasters / éditeurs de contenu.


1 commentaires

Est-il possible de faire cette conversion à l'intérieur de JavaScript? At-il une fonctionnalité intégrée pour cela?



2
votes

dépend des utilisateurs cibles ... Par exemple, Nürnberg.de a également consulté Nuernberg.de pour l'amour pour le faire facilement accessible pour l'utilisateur allemand natif (comme le clavier allemand est par défaut et que tous les 4 symboles de clé supplémentaires (Öäüß) sont disponibles à tous les haut-parleurs allemands) et n'oubliez pas que l'un des objectifs I18N est de fournir une sensation de langue maternelle à l'utilisateur final . Les utilisateurs Mac et Linux ont encore plus d'initiative, comme en cliquant sur Alt + U sur Mac, induisez Umlaut dans des personnages pour faire face à l'entrée I18N.

Je me demandais juste quels sont les Complications d'avoir les non-ASCII caractères de l'URL.

Mais comme vous avez posé votre question, il semble que votre question soit plus autour de URI, plutôt que l'URL < / a> ... et vous essayez de fusionner URN avec des caractères non ascii à l'intérieur de l'URI. Il n'y a pas de complications, si vous savez où et comment analyser votre urne sur serveur ( Par exemple: En cas de serveur basé à Django, l'urne peut être analysée et gérée à l'aide de Regex Inside Url.py ). Tout ce que vous avez besoin de garder à l'esprit est celui avec web2.0 (ajax JavaScript basé ) Evolution, tout fonctionne principalement dans UTF-8, car la spécification JavaScript demande l'encodage UTF-8. Et donc utf-8 a évolué dans une sorte de standard. Stick avec des spécifications de codage UTF-8, et vous ne serez à peine confronté à des complications dans URI analyse et de travail autour de lui.

Par exemple. Vérifiez l'URI http://de.wikipedia.org/wiki / fürth ou http://hi.wikipedia.org/wiki / जज्ममी .. Indépendamment de l'encodage Vous l'écrivez dans la barre d'adresse, le navigateur le traduira à UTF-8, et envoyez-le au serveur.

REMARQUE: BESIDE UTF-8, certains symboles sont codés à l'aide de pourcentage de codage. En savoir plus sur elle peut être située ici ...

http://fr.wikipedia.org/wiki/percent-coding < / p>


2 commentaires

C'est dommage que la syntaxe ne gère pas I18n Uris :)


@P M: Merci! Très bonne réponse.