Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
La función encodeURIComponent() codifica un URI reemplazando cada instancia de ciertos caracteres por una, dos, tres o cuatro secuencias de escape que representan la codificación UTF-8 del carácter (serán cuatro secuencias de escape solo para caracteres compuestos por dos caracteres sustitutos). En comparación con encodeURI(), esta función codifica más caracteres, incluidos aquellos que son parte de la sintaxis de un URI.
Una cadena que se codificará como un componente de URI (una ruta, cadena de consulta, fragmento, etc.). Otros valores son convertidos a cadenas.
Una nueva cadena de caracteres que representa el uriComponent proporcionado codificado como un componente URI.
Se lanza si uriComponent contiene un sustituto solitario.
encodeURIComponent() es una propiedad de tipo función del objeto global.
encodeURIComponent() usa el mismo algoritmo de codificación que se describe en encodeURI(). Escapa todos los caracteres excepto:
A–Z a–z 0–9 - _ . ! ~ * ' ( )En comparación con encodeURI(), encodeURIComponent() escapa un conjunto más amplio de caracteres. Usa encodeURIComponent() en campos ingresados por el usuario en formularios enviados con POST al servidor, ya que esto codificará los símbolos & que podrían generarse inadvertidamente durante la entrada de datos para caracteres de referencia u otros caracteres que requieran codificación/decodificación. Por ejemplo, si un usuario escribe Jack & Jill, sin encodeURIComponent(), el símbolo & podría interpretarse en el servidor como el inicio de un nuevo campo y poner en riesgo la integridad de los datos.
Para application/x-www-form-urlencoded, los espacios deben reemplazarse por +, por lo que puede que se desee continuar una llamada a encodeURIComponent() con un reemplazo adicional de la cadena %20 por +.
El siguiente ejemplo proporciona la codificación especial requerida dentro de los parámetros de los encabezados de respuesta del servidor Content-Disposition y Link con codificación UTF-8 (por ejemplo, nombres de archivos UTF-8):
El RFC3986 más reciente reserva !, ', (, ), y *, aunque estos caracteres no tienen usos formalizados para la delimitación de un URI. La siguiente función codifica una cadena para un formato de componente de URL compatible con RFC3986. También codifica [ y ], que son parte de la sintaxis de URI IPv6. Una implementación de encodeURI compatible con RFC3986 no debería escapar estos caracteres, como se demuestra en el ejemplo de encodeURI().
Un URIError será lanzado si se intenta codificar un sustituto que no es parte de un par alto-bajo. Por ejemplo:
Puedes usar String.prototype.toWellFormed(), que reemplaza los sustitutos solitarios con el carácter de reemplazo de Unicode (U+FFFD), para evitar este error. También puedes usar String.prototype.isWellFormed() para verificar si una cadena contiene sustitutos solitarios antes de pasarla a encodeURIComponent().
| ECMAScript® 2027 Language Specification # sec-encodeuricomponent-uricomponent |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 11 feb 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.