style - html title attribute
Caracteres Unicode en URL (7)
En 2010, ¿servirá las URL que contienen caracteres UTF-8 en un gran portal web?
Los caracteres Unicode están prohibidos según el RFC en las URL (ver here ). Tendrían que estar codificados por ciento para cumplir con los estándares.
Mi punto principal, sin embargo, es servir a los caracteres no codificados con el único propósito de tener URL agradables, por lo que la codificación porcentual está desactivada.
Todos los principales navegadores parecen analizar correctamente esas URL sin importar lo que diga la RFC. Mi impresión general, sin embargo, es que se vuelve muy inestable al abandonar el dominio de los navegadores web:
- Las URL se copian y se pegan en archivos de texto, correos electrónicos, incluso sitios web con una codificación diferente
- Bibliotecas de cliente HTTP
- Navegadores exóticos, lectores de RSS
¿Es correcta mi impresión de que aquí se esperan problemas y, por lo tanto, no es una solución práctica (todavía) si prestas servicios a una audiencia no técnica y es importante que todos tus enlaces funcionen correctamente incluso si se citan y se transmiten?
¿Hay alguna forma mágica de servir URL bonitas en HTML?
http://www.example.com/düsseldorf?neighbourhood=Lörick
que se puede copiar y pegar con los caracteres especiales intactos, pero funcionan correctamente cuando se vuelven a usar en clientes más antiguos?
Como todos estos comentarios son ciertos, debe tener en cuenta que, en la medida en que la ICANN aprobó que los caracteres en árabe (persa) y chino se registren como nombre de dominio, todas las empresas que hacen navegador (Microsoft, Mozilla, Apple, etc.) deben admite Unicode en URLs sin codificación, y Google debe poder buscarlas, etc.
Por lo tanto, este problema se resolverá lo antes posible.
Dependiendo de su esquema de URL, puede hacer que la parte codificada en UTF-8 "no sea importante". Por ejemplo, si mira las URL de desbordamiento de pila, tienen la siguiente forma:
http://.com/questions/2742852/unicode-characters-in-urls
Sin embargo, al servidor en realidad no le importa si obtiene la parte incorrecta después del identificador, por lo que esto también funciona:
http://.com/questions/2742852/これは、これを日本語のテキストです
Entonces, si tuviera un diseño como este, entonces podría usar UTF-8 en la parte posterior al identificador y realmente no importaría si se distorsionó. Por supuesto, esto probablemente solo funciona en circunstancias un tanto especializadas ...
Lo que dijo Tgr. Fondo:
http://www.example.com/düsseldorf?neighbourhood=Lörick
Eso no es un URI. Pero es un IRIs .
No puede incluir un IRI en un documento HTML4; el tipo de atributos como href
se define como URI y no IRI. Algunos navegadores manejarán un IRI aquí de todos modos, pero no es realmente una buena idea.
Para codificar un IRI en un URI, tome la ruta y consulte las partes, codifíquelas UTF-8 y luego codifique por ciento los bytes que no sean ASCII:
http://www.example.com/d%C3%BCsseldorf?neighbourhood=L%C3%B6rick
Si hay caracteres que no son ASCII en la parte del nombre de host del IRI, ej. http://例え.テスト/
, http://例え.テスト/
, se codifican con Punycode .
Ahora tienes un URI. Es un URI feo. Pero la mayoría de los navegadores lo ocultan: cópielo y péguelo en la barra de direcciones o sígalo en un enlace y verá que se muestra con los caracteres Unicode originales. Wikipedia ha estado usando esto por años, por ej .:
http://en.wikipedia.org/wiki/ɸ
El único navegador cuyo comportamiento es impredecible y no siempre muestra la bonita versión de IRI es ...
...Bueno, ya sabes.
No estoy seguro de si es una buena idea, pero como se menciona en otros comentarios y como lo interpreto, muchos caracteres Unicode son válidos en las URL HTML5 .
Por ejemplo, href
docs dice http://www.w3.org/TR/html5/links.html#attr-hyperlink-href :
El atributo href en a y los elementos de área deben tener un valor que sea una URL válida potencialmente rodeada de espacios.
Luego, la definición de "URL válida" apunta a http://url.spec.whatwg.org/ , que define los puntos de código URL como:
ASCII alfanumérico, "!", "$", "&", "''", "(", ")", "*", "+", ",", "-", ".", "/" , ":", ";", "=", "?", "@", "_", "~", y puntos de código en los rangos U + 00A0 a U + D7FF, U + E000 a U + FDCF , U + FDF0 a U + FFFD, U + 10000 a U + 1FFFD, U + 20000 a U + 2FFFD, U + 30000 a U + 3FFFD, U + 40000 a U + 4FFFD, U + 50000 a U + 5FFFD, U +60000 a U + 6FFFD, U + 70000 a U + 7FFFD, U + 80000 a U + 8FFFD, U + 90000 a U + 9FFFD, U + A0000 a U + AFFFD, U + B0000 a U + BFFFD, U + C0000 a U + CFFFD, U + D0000 a U + DFFFD, U + E1000 a U + EFFFD, U + F0000 a U + FFFFD, U + 100000 a U + 10FFFD.
El término "puntos de código URL" se usa a continuación en algunas partes del algoritmo de análisis sintáctico, por ejemplo, para el estado relativo de la ruta :
Si c no es un punto de código URL y no es "%", se analiza el error.
También el validador http://validator.w3.org/ pasa por URL como "你好"
, y no pasa por URL con caracteres como espacios "ab"
Para mí esta es la forma correcta, esto solo funcionó:
$linker = rawurldecode("$link");
<a href="<?php echo $link;?>" target="_blank"><?php echo $linker ;?></a>
Esto funcionó, y ahora los enlaces se muestran correctamente:
http://newspaper.annahar.com/article/121638 -معرض - جوزف-حرب-في-غاليري-جانين-ربيز-لوحاته-الجدية-تبحث-وتكتشف-وتفرض-الاحترام
Enlace encontrado en:
Usa la codificación porcentual. Los navegadores modernos se ocuparán de los problemas de visualización y pegado y lo harán legible para los humanos. P.ej. http://ko.wikipedia.org/wiki/위키백과:대문
Editar: cuando copies una url en Firefox, el portapapeles mantendrá la forma porcentual codificada (que generalmente es algo bueno), pero si copias solo una parte, permanecerá sin codificar.
Use forma de porcentaje de codificación . Algunas computadoras (principalmente antiguas) con Windows XP, por ejemplo, no son compatibles con Unicode, sino con codificaciones ISO. Esa es la razón por la que se inventaron las URL codificadas por porcentaje. Además, si le da una URL impresa en papel a un usuario, que contiene caracteres que no se pueden escribir fácilmente, ese usuario puede tener dificultades para escribirla (o simplemente ignorarla). La forma de porcentaje de codificación incluso se puede usar en muchas de las máquinas más antiguas que existieron (aunque no son compatibles con Internet, por supuesto).
Sin embargo, hay un inconveniente, ya que los caracteres con porcentaje de codificación son más largos que los originales, lo que posiblemente da como resultado URL muy largas. Pero simplemente trate de ignorarlo, o use un acortador de URL (recomendaría goo.gl en este caso, que hace una URL larga de 13 caracteres). Además, si no desea registrarse para una cuenta de Google, intente con bit.ly (bit.ly crea URL ligeramente más largas, con una longitud de 14 caracteres).