我曾将Google Apps用作Web应用程序的REST API,但发现每当我尝试插入新记录时,API都不会保留加号。由于浏览器上的起始策略相同,JSON必须作为URL上的参数传递给API。该过程首先对JSON进行了划分,然后使用JavaScript中的转义函数对值进行了转义。在Google Apps脚本+ MySQL中将空格转换为空格
但是,一旦请求到达Google Apps,Google进程在到达doGet()之前解析请求对象,将未转义的“+”视为空格。
这是一个非常疯狂的错误识别,所以如果有人遇到它,我希望我的经验解决它的帮助。只需使用encodeURIComponent()而不是escape(),那应该可以做到。
查看准备好的语句。不需要转义。 – David
@David我已经做了,但无论如何都不能避免转义某些字符,因为该语句可能包含需要转义的字符串。另外,使用准备好的语句为我的sql builder增加了很多复杂性。我宁愿用JavaScript处理转义,但我需要知道所有需要转义的字符。显然,甲骨文公司的某个人在编写关于此事的足够全面的文档方面放弃了这一决定,因为“出人意料!”字面加号在文档中没有列出作为逃逸字符。我不希望有更多的惊喜。 –
“字面加号在文档中没有被列为逃生字符”---这是因为*惊喜*'+'在一般的SQL和它的mysql方言中并不是什么特殊的。对于你的任务,你不需要照顾至少一半你列举的逃生序列。 “ – zerkms