从表单字段中转义或替换双引号

时间:2017-08-24 07:57:53

标签: json asp-classic escaping

我的应用程序中有一个表单字段(textarea),可能包含双引号("")。对于JSON - 字符串,我写了一个小的#34;设置",然后发送。我遇到了问题,如果用户使用双引号,我的设置会中断。

到目前为止它是这样的:

dim payload
payload = payload & "{""short_description"":""" & Replace(Replace(trim(shortDesc),chr(10),""), chr(13), "") & ""","
payload = payload & """description"":""" & Replace(Replace(trim(Description),chr(10),""), chr(13), "") &""","
payload = payload & """u_requester"":"""& sgi &""","
payload = payload & """contact_type"":""Self-service"","
payload = payload & """cmdb_ci"":""" & system &""","
payload = payload & """u_category"":""" & category & """}"  

只是为了告诉你我在哪里使用它:

With http
  Call .Open("POST", url, False)
  Call .SetRequestHeader("Accept", "application/json")
  Call .SetRequestHeader("Content-Type", "application/json")
  Call .Send(payload)
End With

此方法中使用的变量是当前函数中的参数。 我想过逃避双引号,但我不知何故最终会出现在我建议我应该在chr(34)使用Response.Write的网站上,这不是我正在寻找的内容。&n。 / p>

我也试过使用Replace - 函数,类似于我在PHP中这样做:

Replace(myvar, '"'; "'")

但正如你可能想到的那样,单引号在经典ASP中开始发表评论。我怎样才能摆脱这里的双引号?如果我将"转换为'或保留双引号并不重要。任何建议表示赞赏

2 个答案:

答案 0 :(得分:0)

如果在asp中的字符串中需要可见的双引号,则需要加倍。

Response.Write("""")

如果您想要替换双引号,

str = Replace(str,"""","")

答案 1 :(得分:0)

要在json字符串中显示双引号(或单引号),您需要将其转义:

str = "this is a ""test""."
strForJson = Replace( str, """", "\""" )