我有这个字符串:"\"Blah \'Blah\' Blah\""
。里面还有另一个字符串。如何将其转换为:Blah 'Blah' Blah
? (你看,unescaping字符串。)这是因为我得到一个SQL Where查询:
WHERE blah="Blah \'Blah\' Blah"
当我解析这个时,我得到上面的字符串(仍然在引号内并转义。)我如何提取它,取消转义字符串?或者这是一个更简单的方法吗?谢谢,
艾萨克
答案 0 :(得分:17)
按照适当的步骤对数据库/平台上的查询进行参数化,您不必转义任何内容。您还可以保护自己免受注射漏洞的侵害。
答案 1 :(得分:0)
将字符串放在属性文件中,Java支持XML属性文件,引号字符不需要以XML格式转义。
使用Properties类的loadFromXML(InputStream in)方法。
然后,您可以使用MessageFormat类在需要时将值插入到字符串中。
答案 2 :(得分:0)
这应该是正确的。这假设如果它以引号开头,则以引号结束。
if (val.startsWith("\"") || val.startsWith("\'"))
val = val.substring(1, val.length-2);
您可能还希望添加val = val.trim();
。
答案 3 :(得分:-1)
"\"Blah \'Blah\' Blah\"".replaceAll("\"", "")