JSON 没有将“+”字符传输到 CGI 脚本

JSON not transferring "+" character to CGI script

我目前正在做一个个人项目,我必须处理一些化学式;

我有一个带有 JavaScript 的表格,我可以在其中输入这些公式;公式以类似 LaTeX 的样式输入,用于 super- en 下标。

示例公式如下:

Fe^{3+}

当我使用 JavaScript 阅读表格并且 console.log(); 公式按预期工作时。 但是,如果我将公式发送到后端(Python with CGI),+ 字符似乎已经消失并被替换为 space.

我认为它与转义字符有关,因为部分公式看起来很像正则表达式,但环顾四周后,我找不到任何暗示我必须转义 + 字符.

现在我完全不知道如何解决这个问题...我可以使用不同的字符并在后端替换它,但这似乎不是最佳解决方案...

最重要的问题:你是如何调用 CGI 脚本的?

使用 HTTP GET 或 HTTP POST?

如果您使用的是 HTTP POST 并且数据是在 HTTP 数据部分传输的,那么您不需要转义“+”号。

但是如果你使用的是HTTP GET,那么“+”号会先根据URL编码标准进行翻译(因此,“+”变成space),然后再传输到 CGI 脚本。

因此在后一种情况下,您需要 转义“+”符号(以及其他 'special' 字符,例如“%”和“?”)。