我在 javascript 中遇到特殊字符问题。 我有一个带有输入文本的表单,其中包含以下字符串:
10/10/2010
在 form.serialize(); 之后我得到这个字符串作为
10%2F10%2F2010
“/”字符被转换为其 ASCII 代码 %2F。
我可以使用 String.fromCharCode(ascii_code) 进行转换,但我的表单中有很多输入,因此这些字符串类似于:
var=14&var=10%2F10%2F2010&var=10%2F10%2F2010&var=10%2F10%2F2010
只是一个例子,说明我必须(“手动”)遍历这个字符串并找到这些值并进行转换。
有没有简单的方法来执行该转换? 奇怪的是,因为我以前没有遇到过这个问题,我不确定为什么现在会发生这种情况。
最佳答案
我之所以会这样,是因为那是 how it's meant to be :
The .serialize() method creates a text string in standard URL-encoded notation. It operates on a jQuery object representing a set of form elements.
据我所知,没有原生的 jQuery 函数可以反序列化,但你的帖子表明你已经得到了它,并且只卡在 URL-encoded strings 中。 :
decodeURIComponent(encodedURI)
Decodes a Uniform Resource Identifier (URI) component previously created by encodeURIComponent or by a similar routine.
关于javascript - form.serialize() 上的编码问题;一些特殊字符显示为 ASCII 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14630053/