javascript - ejemplos - diferencia entre escape, encodeuri, encodeURIComponent
javascript html (4)
En primer lugar, Escape está en desuso y no debe utilizarse.
encodeURI ()
Debe usar esto cuando desee codificar una URL, ya que codifica los símbolos que no están permitidos en una URL.
encodeURIComponent ()
Debe utilizarse cuando desee codificar parámetros de su URL. También puede usar esto para codificar una URL completa. Pero tendrías que decodificarlo para poder usarlo de nuevo.
-
Yo diría que esto es un duplicado. Aquí hay una buena respuesta sobre SO: los créditos van para Arne Evertsson: ¿ Cuándo se supone que debes usar escape en lugar de encodeURI / encodeURIComponent?
Hay muchos detalles sobre por qué / por qué no sobre ese tema.
En JavaScript, ¿cuál es la diferencia entre
- escapar / escapar
- encodeuri / decodeuri
- encodeURIComponent / decodeURIComponent
Para los que tienen una mentalidad visual, aquí hay una tabla que muestra los efectos de encodeURI
, encodeURIComponent
y escape
en los caracteres ASCII simbólicos de uso común:
Char encUrI encURIComp escape
* * * *
. . . .
_ _ _ _
- - - -
~ ~ ~ %7E
'' '' '' %27
! ! ! %21
( ( ( %28
) ) ) %29
/ / %2F /
+ + %2B +
@ @ %40 @
? ? %3F %3F
= = %3D %3D
: : %3A %3A
# # %23 %23
; ; %3B %3B
, , %2C %2C
$ $ %24 %24
& & %26 %26
%20 %20 %20
% %25 %25 %25
^ %5E %5E %5E
[ %5B %5B %5B
] %5D %5D %5D
{ %7B %7B %7B
} %7D %7D %7D
< %3C %3C %3C
> %3E %3E %3E
" %22 %22 %22
/ %5C %5C %5C
| %7C %7C %7C
` %60 %60 %60
Otra diferencia vital es que Unescape no maneja secuencias UTF-8 de múltiples bytes, mientras que decodeURI [Componente] hace:
decodeURIComponent("%C3%A9") == "é"
unescape("%C3%A9") == "é"
-
escape
- roto, desaprobado, no usar -
encodeURI
: codifica los caracteres que no están permitidos (sin procesar) en las URL (encodeURI
para corregir los URI rotos si no puede corregirlos de antemano) -
encodeURIComponent
: comoencodeURI
más caracteres con un significado especial en URI (utilícelo para codificar datos para insertarlos en un URI)
escape
- desaprobado, no deberías usarlo.encodeURI
- reemplaza todos los caracteres excepto
; , / ? : @ & = + $ - _ . ! ~ * '' ( ) # az 0-9
-
encodeURIComponent
- reemplaza todos los caracteres excepto
- _ . ! ~ * '' ( ) az 0-9