我有一个类似于服务器端的字符串
String productIDs = "[{"productID":"226167","productName":"It is my life (Bingo)"},{"productID":"3193","productName":"It is your name (jingo)"},{"productID":"273838","productName":"It's the same milk/Butter i drink/ate yesterday"}]"
现在我将它保存在隐藏的输入字段中
<input type="hidden" class="hiddenInput" value="<%=productIDs %>" />
但是当我通过萤火虫检查它时,它的保存非常如下
<input type="hidden" class="hiddenInput" yesterday"}]"="" is ="" my ="" Butter ="" life ="" (Bingo)"},{"productid":"273838","productname":"It ="" crmo="" (paar)"},{"productid":"3193","productname":"It ="" milk="" same ="" flip-off="" productid":"226167","productname":"It ="" value="[{" />
任何人都知道为什么会这样?
答案 0 :(得分:2)
问题在于你保存字符串的方式,你必须切换你使用的引号类型,否则js不知道字符串结束和开始的位置。
在你的问题中它看起来像这样:
String productIDs = "[{'productID':'226167','productName':'It is my life (Bingo)'},{'productID':'3193','productName':'It is your name (jingo)'},{'productID':'273838','productName':'It's the same milk/Butter i drink/ate yesterday'}]"
您也可以使用\"
代替'
,但对我来说,这更令人困惑。
修改强>
您可以使用以下代码执行此操作:
strUWantToChange.replace('"',"'");
答案 1 :(得分:1)
如果您的String中有引号,则需要在将它粘贴到HTML之前将其转义。
答案 2 :(得分:1)
正如其他答案所说,必须转义报价。这些不是唯一应该转义的字符。系统地以HTML格式转义<
,>
,'
和&
。风险是
每当您必须显示您不确定其中不包含任何此类字符的数据时(例如:直接或间接来自用户的数据,通常是自由文本数据),请转义此数据
这是通过两个简单的结构在JSP中完成的:
<c:out>
代码:fn:escapeXml
EL功能:${fn:escapeXml(productIDs)}
Scriptlet不应该在JSP中使用多年。使用JSTL,其他自定义标签和EL。
答案 3 :(得分:0)
试试这个:
String productIDs = "[{\"productID\":\"226167\",\"productName\":\"It is my life (Bingo)\"},{\"productID\":\"3193\",\"productName\":\"It is your name (jingo)\"},{\"productID\":\"273838\",\"productName\":\"It's the same milk/Butter i drink/ate yesterday\"}]";