language agnostic - ¿Es aconsejable tener caracteres no ascii en la URL?
language-agnostic internationalization (4)
Puede usar caracteres que no sean Ascii en una url, pero es feo porque los caracteres especiales deben codificarse así: http://www.w3schools.com/tags/ref_urlencode.asp
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?
EDITAR (en respuesta a la respuesta de Maxym): El sitio va a ser local para un país específico y no necesito preocuparme por el público mundial que accede a 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?
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. Vivo en el mundo "cirílico", es posible crear URL cirílicas, pero nadie tiene éxito con eso, porque incluso somos bastante perezosos para cambiar el lenguaje y acostumbrarnos a escribir latin ...
Actualizar:
No puedo decir acerca de las alternativas, pero a veces algunos idiomas tienen un sustituto informal o formal de letras, por ejemplo, en alemán se puede escribir Ö pero en la url se puede 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
depende de los usuarios objetivo ... por ejemplo, Nürnberg.de también mira nuernberg.de para que sea fácilmente accesible para el usuario alemán nativo (dado que el teclado alemán es el predeterminado y tiene todos los 4 símbolos clave adicionales (öäüß) disponibles para todos Hablantes de habla alemana), y no olvide 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, como al hacer clic en Alt + u en Mac, se induce una diéresis en los caracteres para tratar la entrada de I18N.
Me preguntaba cuáles son las complicaciones de tener los caracteres no ascii en la URL.
pero por la forma en que hizo su pregunta, parece que su pregunta es más sobre URI, en lugar de URL ... y está intentando fusionar URN con caracteres no ASCI dentro de URI. no hay complicaciones, si sabe dónde y cómo analizar su URN en el servidor ( por ejemplo: en el caso del servidor basado en Django, la URN se puede analizar y manejar usando regex dentro de url.py ) .. todo lo que necesita Hay que tener en cuenta que con la evolución de web2.0 (basado en JavaScript de Ajax), todo se ejecuta principalmente en utf-8, ya que la especificación de Javascript exige la codificación de 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. revisa el URI http://de.wikipedia.org/wiki/Fürth o http://hi.wikipedia.org/wiki/ जर्मनी .. independientemente de la codificación que escribas en la barra de direcciones, el navegador lo traducirá a UTF-8 y enviarlo al servidor.
NOTA: al lado de UTF-8, hay algunos símbolos que están codificados usando codificación porcentual. Puede encontrar más información al respecto aquí ...
Es posible usar nombres de dominio no ASCII / no latinos usando IDNA . Además, siempre puede usar la codificación porcentual (como %20
para el espacio) en las URL. RFC 3986 recomienda la 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 se corresponden con los caracteres en el conjunto sin reservas deben estar codificados en porcentajes. (...) Por ejemplo, el carácter A se representaría como "A", el carácter LETRA MAYÚSCULA LATINA A CON GRAVE se representaría como "% C3% 80", y el carácter KATAKANA LETTER A se representaría como "% E3% 82% A2 ".
Los clientes modernos (navegadores web) pueden transformarse de una codificación porcentual a un Unicode, por lo que la URL se transfiere como ASCII pero se ve bonita para el usuario.
Asegúrese de utilizar un marco web / CMS que también comprenda esta codificación, para simplificar la entrada de URL de los webmasters / editores de contenido.