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' 字符,例如“%”和“?”)。
我目前正在做一个个人项目,我必须处理一些化学式;
我有一个带有 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' 字符,例如“%”和“?”)。