无法确定数据的编码方式

时间:2014-05-02 03:12:56

标签: javascript url encode urlencode

我有一个刚才写的网页表单,我试图与之交互 - 我无法更改它。我需要能够通过javascript与它进行交互,但我正在努力让javascript以正确的方式对数据进行编码。看起来不是[A-Za-z0-9]的一切都被编码了,但是我找不到一个能做同样事情的javascript函数。测试用例:

输入:~+@-="'()_(最后有一个空格)

所需的输出:%7E%2B%40%2D%3D%22%27%27%28%29%5F%20

逃脱:%7E+@-%3D%22%27%28%29_%20

encodeURI:~+@-=%22'()_%20

encodeURIcomponent:~%2B%40-%3D%22'()_%20

请注意使用IE10的I(#颤抖)。也不可改变。 (我对此并不比你更高兴。)

有什么建议吗? (最好是香草)

1 个答案:

答案 0 :(得分:2)

看起来好像是Hex等价物

~       = 7E
+       = 2B
@       = 40
-       = 2D
=       = 3D
"       = 22
'       = 27
(       = 28
)       = 29
_       = 5F
space   = 20

您应该可以使用charCodeAt对这些值进行编码

'~'.charCodeAt(0).toString(16).toUpperCase()
    // -> returns '7E'

修改

•ASCII代码在此处:http://www.ascii.cl/htmlcodes.htm

•string(16)表示基数16,它是十六进制