Utiliser encodeURI () vs escape () pour les chaînes utf-8 en JavaScript

Je suis la manipulation des chaînes utf-8 dans le JavaScript et le besoin de s'échapper.

Échapper() /ne pas encoder() et encodeURI() /decodeURI() dans mon navigateur.

escape()

> var hello = "안녕하세요"
> var hello_escaped = escape(hello)
> hello_escaped
  "%uC548%uB155%uD558%uC138%uC694"
> var hello_unescaped = unescape(hello_escaped)
> hello_unescaped
  "안녕하세요"

encodeURI()

> var hello = "안녕하세요"    
> var hello_encoded = encodeURI(hello)
> hello_encoded
  "%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94"
> var hello_decoded = decodeURI(hello_encoded)
> hello_decoded
  "안녕하세요"

Cependant, Mozilla dit que escape() est obsolète.

Bien que encodeURI() et decodeURI() fonctionnent au-dessus de chaîne utf-8, la documentation (ainsi que les noms des fonctions elles-mêmes) de me dire que ces méthodes sont pour les Uri; je ne vois pas l'utf-8 cordes mentionné nulle part.

Tout simplement, est-il acceptable d'utiliser encodeURI() et decodeURI() pour des chaînes utf-8?

source d'informationauteur SeanPlusPlus