5

Actualmente estamos trabajando en un proyecto I18N. Me pregunto cuáles son las complicaciones de tener los caracteres no ascii en la URL. Si no es aconsejable, ¿cuáles son las alternativas para enfrentar este problema?¿Es aconsejable tener caracteres que no sean ASCII en la URL?

EDITAR (en respuesta a la respuesta de Maxym): El sitio va a ser local en determinado país y no necesita preocuparse por el amplio mundo que accede pública este sitio. Entiendo que desde el punto de vista de la usabilidad, es realmente molesto. ¿Cuál es el otro problema técnico asociado con esto?

+0

Bueno, si usted trabaja en el sitio i18n, entonces eso significa que traducirá su sitio a algunos idiomas ... Eso significa que espera personas de otros países, lo que hace que su sitio no sea local :) Por supuesto que puedo estar equivocado, si su gente en su país usa pocos idiomas , específico para su país solo – Maxym

+0

si usa un dispositivo que no sea ASCII, ¿cómo se tecleará con un teclado estándar? – wenn32

+0

Su teclado estándar lo maneja. – Broam

Respuesta

3

es posible utilizar nombres de dominio no ASCII/no latinos usando IDNA Además, siempre se puede utilizar el porcentaje de codificación (como %20 de espacio) en las URL RFC 3986 recomienda codificación UTF-8 combinada con porcentajes:

los datos deben codificarse primero como octetos de acuerdo con la codificación de caracteres UTF-8 ; entonces solo aquellos octetos que no corresponden a los caracteres en el conjunto sin reservas deben estar codificados en porcentajes. (...) Por ejemplo, el carácter A se representa como "A", el personaje Letra latina mayúscula A con grave se representaría como "% C3% 80", y el carácter KATAKANAS CARTA A sería se representa como "% E3% 82% A2".

clientes modernos (navegadores web) son able para transformar de ida y vuelta entre el porcentaje de codificación y Unicode, por lo que la URL se transfiere como ASCII, pero parece bastante para el usuario.

Asegúrese de estar utilizando un marco web/CMS que también comprenda esta codificación, para simplificar la entrada de URL de los webmasters/editores de contenido.

2

Yo diría que no. La razón es simple -> si confías en un público mundial, entonces sería un gran problema para las personas escribir tu url. Yo vivo en el mundo "cirílico", es posible crear direcciones URL cirílico, pero nadie tiene éxito con eso, porque a pesar de que son bastante perezosos para cambiar el idioma y acostumbrarse al tipo latino ...

Actualización:
No puedo decir acerca de las alternativas, pero a veces algunos idiomas tienen un sustituto informal o formal de la letra, por ejemplo en alemán puedes escribir Ö pero en la url puedes ver OE en su lugar. También puede considerar palabras en inglés, o palabras con sonidos similares (para que la gente de su país pueda recordar esa escritura, y otros "países" no dañarán

+0

@maxym ¿y si solo quiere que los rusos vean el sitio? –

+0

@herrow: en ruso se puede usar la transliteración ... bueno, no tengo idea de cómo se deletrea esta palabra en inglés, es decir, palabras cirílicas escritas con letras latinas (o incluso se usan números). Mucha gente lo usa aquí solo en el chat (terrible de leer, pero no pueden evitarlo) – Maxym

+0

¡Gracias Maxym! No me preocupa el público mundial, el sitio va a ser bastante local para un país. – rkg

0

Puede usar caracteres no ascii en una url, pero es feo porque carácteres especiales deben ser codificados como esto:.. http://www.w3schools.com/tags/ref_urlencode.asp

+1

-1. Los navegadores web modernos pueden tratar esto automáticamente. –

+0

@larsman: Pero algunos navegadores web modernos rompen intencionalmente la pantalla de caracteres no latinos, excepto en ciertas situaciones para combatir ataques de phishing ... –

1

depende de los usuarios objetivo ... por ejemplo, Nürnberg.de también mira nuernberg.de para que sea de fácil acceso para el usuario alemán nativo (ya que el teclado alemán es el predeterminado y tiene los 4 símbolos clave adicionales (öäüß) avaible a todos los hablantes de alemán), y no olviden que uno de los objetivos de I18N es brindarle al usuario el sentimiento del idioma nativo. Los usuarios de Mac y Linux tienen aún más iniciativa, al hacer clic en Alt + u en Mac induce un diéresis en los caracteres para tratar la entrada de I18N.

Me estaba preguntando ¿cuáles son las complicaciones de tener la no-ascii caracteres en la URL.

pero la forma en que despiden a su pregunta, parece que su pregunta es más en torno a URI, rather then URL ... y que está tratando de fusionar urna con caracteres no ASCII dentro URI. no hay complicaciones, si sabes dónde y cómo analizar tu URN en el servidor (for example: in case of Django based server, the URN can be parsed and handled using regex inside url.py) ... todo lo que debes tener en cuenta es que con la evolución de web2.0 (Ajax basado en javascript), todo se ejecuta principalmente en utf -8, ya que la especificación Javascript exige codificación utf-8. Y así utf-8 ha evolucionado en una especie de estándar. se adhieren a las especificaciones de codificación utf-8, y difícilmente se enfrentarán complicaciones en el análisis de URI y en su solución.

por ejemplo. verifique el URI http://de.wikipedia.org/wiki/Fürth o http://hi.wikipedia.org/wiki/जर्मनी .. independientemente de la codificación que escriba en la barra de direcciones, el navegador lo traducirá a UTF-8 y lo enviará al servidor.

NOTA: al lado de UTF-8, hay algunos símbolos que se codifican utilizando codificación .. porcentaje más sobre él se puede encontrar aqui ...

http://en.wikipedia.org/wiki/Percent-encoding

+1

Es una pena que la sintaxis SO no maneje i18n URI :) –

+0

LOL, muy cierto;) –

+0

@PM: ¡Gracias! Gran respuesta. – rkg

Cuestiones relacionadas