Javascript “JSON不传输”+&引用;字符到CGI脚本
我目前正在做一个个人项目,我必须处理一些化学公式 我有一个带有JavaScript的表单,在其中输入这些公式;对于super-en下标,这些公式以类似乳胶的样式输入 下面可以找到一个示例公式:Javascript “JSON不传输”+&引用;字符到CGI脚本,javascript,python,json,escaping,cgi,Javascript,Python,Json,Escaping,Cgi,我目前正在做一个个人项目,我必须处理一些化学公式 我有一个带有JavaScript的表单,在其中输入这些公式;对于super-en下标,这些公式以类似乳胶的样式输入 下面可以找到一个示例公式: Fe^{3+} 当我使用JavaScript读取表单和console.log()时公式按预期工作。 但是,如果我将公式发送到后端(带有CGI的Python),则+字符似乎已消失,并被空格替换 我认为这与转义字符有关,因为公式的某些部分看起来很像正则表达式,但环顾四周后,我找不到任何东西表明我必须转义+字符
Fe^{3+}
当我使用JavaScript读取表单和console.log()时代码>公式按预期工作。
但是,如果我将公式发送到后端(带有CGI的Python),则+
字符似乎已消失,并被空格替换
我认为这与转义字符有关,因为公式的某些部分看起来很像正则表达式,但环顾四周后,我找不到任何东西表明我必须转义+
字符
现在我完全不知道如何解决这个问题。。。我可以使用不同的字符并在后端替换它,但这似乎不是最佳解决方案…最重要的问题:您是如何调用CGI脚本的?
使用HTTP GET还是HTTP POST
如果您使用的是HTTPPOST,并且数据是在HTTP数据部分传输的,则不需要转义“+”符号
但是如果您使用的是HTTPGET,那么“+”符号将首先根据URL编码标准进行翻译(因此,“+”将变成一个空格),然后再传输到CGI脚本
因此,在后一种情况下,您需要转义“+”符号(以及其他“特殊”字符,如“%”和“?”)。我还没有想到这一点。。。但是是的,我正在使用HTTP get,您的建议解决了这个问题!我正在使用javascriptencodeURIComponent()
函数。