-1

在我的 Java Web 应用程序中,我从数据库中提取一个属性并通过控制器将其发送到视图/浏览器层。

在 HTML 中,我希望字符串看起来像这样:

9" nails

相反,它看起来像这样:

"9\" nails"

所以我将 ApacheStringEscapeUtils插入我的服务层并unescapeJava()在该属性上运行。结果变成了这样:

"9" nails"

略有改善,但仍然不对。

所以我的问题是这是否不仅仅是一个字符串转义问题,而是一个更基本的数据问题。换句话说,如果我必须做的是从该属性的开头和结尾去除双引号,则有可能以意想不到的方式影响其他数据行——在这种情况下,我必须目视检查整个数据库,以确保我没有根据其他字符串中双引号字符的含义错误地显示其他行。

这里的任何方向将不胜感激。谢谢。

4

2 回答 2

0

您可以在从 API 调用接收数据后替换字符串,然后再使用 Java 将其发送到服务器

String foo = "9\\\" nails";
foo = foo.replace("\\\"", "\"");
于 2014-02-08T23:20:21.017 回答
0

看起来有些层在每个字符串的前后添加了引号。在不了解更多信息的情况下,我建议您简单str = str.substring(1, str.length() - 1)地删除添加的两个引号。我们无法告诉您这是否与某些“基本数据问题”有关,因为我们没有看到其他任何内容。

如果你想获得真正的安全,你可以使用indexOf("\"");and lastIndexOf("\"");,看看它们是否分别是索引 0,str.length() - 1如果它们是:剥离它们。

于 2014-02-08T23:25:02.137 回答