Formatear JSON
Formatear, validar y plegar JSON.
Desarrollo
Codificar y descodificar direcciones y parámetros.
Aquí está la distinción donde se falla, y produce una dirección que parece correcta y no funciona.
Si codificas una dirección completa, las barras, los dos puntos y los interrogantes deben mantener su función. Si codificas solo el valor de un parámetro, esos mismos caracteres sí deben codificarse, o el valor romperá la dirección.
Ejemplo: para enviar «café y té» como término de búsqueda, el ampersand debe codificarse si lo hubiera. Si no, el servidor cree que empieza un segundo parámetro.
Esta herramienta ofrece ambos modos. Para el valor de un parámetro elige el modo estricto; para una dirección completa, el permisivo.
Las letras con tilde y la ñ no son caracteres normales de una dirección y se codifican.
| Carácter | Se convierte en |
|---|---|
| espacio | %20 (o + en un parámetro) |
| á | %C3%A1 |
| é | %C3%A9 |
| ñ | %C3%B1 |
| € | %E2%82%AC |
| & | %26 |
Que una á produzca dos grupos se debe a que ocupa dos bytes en UTF-8 y cada byte se codifica por separado. Es correcto, aunque resulte aparatoso.
El espacio tiene dos formas: %20 funciona en todas partes, el signo más solo en la parte de consulta de la dirección. En una ruta, un más es un más. Ante la duda, %20 es la opción segura.
El error más difícil de localizar, porque el resultado parece casi correcto.
Codificar una dirección ya codificada codifica también el signo de porcentaje: %20 se convierte en %2520. El destinatario descodifica una vez, obtiene %20 y lo trata como texto literal.
Se reconoce por la presencia de %25 donde no toca. Si lo ves, hay un paso de codificación de más.
Ocurre sobre todo en direcciones que pasan por varios sistemas: un enlace en un correo, a través de un rastreador de clics, hacia un destino final. Cada uno cree que debe codificar.
Ante la duda, descodifica del todo y codifica una sola vez. Todo ocurre en esta página.
Los espacios deben codificarse como %20. En un parámetro también vale el signo más.
Ocupa dos bytes en UTF-8 y cada byte se codifica aparte.
Solo si codificas el valor de un parámetro, no en una dirección completa.
Doble codificación. Descodifica del todo y codifica una vez.
%20 funciona en todas partes; el más solo en la parte de consulta.
No.