Javascript decodeURI(Component) malformed uri exception

后端 未结 2 1514
遥遥无期
遥遥无期 2021-02-02 07:03

I entered the following in Chrome\'s console:

decodeURIComponent(\'a%AFc\');

Instead of resulting to a0xAFc, it caused a URIError

相关标签:
2条回答
  • 2021-02-02 07:04

    %AF is not a character on his own but part of Unicode sequence (MACRON - %C2%AF).

    %AF wasn't produced by encodeURIComponent but something like escape, so it can be decoded by unescape.

    What you probably need is decodeURIComponent('%C2%AF')

    0 讨论(0)
  • 2021-02-02 07:12

    This may or may not apply to someone else's situation but this is what did it for me so I thought I would share. I upload and download lots of text files to a custom CMS.
    the '%' sign in the source code was wreaking havoc for me.

    // send to server
    content = content.toString().replace(/%/g,'~~pct~~');       // ~~pct~~ <-made up replacement
    content = encodeURI(content);
    
    // get back from server / database
    content = decodeURI(content);
    content = content.toString().replace(/~~pct~~/g,'%');    // globally restore '%'
    
    0 讨论(0)
提交回复
热议问题