Javascript decodeURI (Component) malformato uri exception

Ho inserito quanto segue nella console di Chrome:

decodeURIComponent('a%AFc'); 

Invece di conseguenza di a0xAFc , ha causato un'exception URIError (malformato uri).

Ho sentito diverse scuse perché questo potrebbe essere ansible, ma quello che non capisco è il motivo per cui ?

La function decodeURIComponent() in particolare si suppone per decodificare i dati, non verificare l'URI.

  • Wikipedia: codifica percentuale
  • RFC3986: Sintassi Generica URI (2005)

%AF non è un carattere da solo ma parte di sequenza Unicode ( MACRON - %C2%AF ).

%AF non è stato prodotto da encodeURIComponent ma qualcosa di simile alla escape , quindi può essere decodificato da unescape .

Quello che probabilmente hai bisogno è decodeURIComponent('%C2%AF')