转义java中的javascript字符串

转义java中的javascript字符串,java,javascript,jsp,escaping,html-escape-characters,Java,Javascript,Jsp,Escaping,Html Escape Characters,我需要用java将其转换为字符串: <script type="text/javascript">document.write("<img src=\"UpArrow.png\" /> \"); </script> document.write(“\”); 有人能帮忙吗?我一直在努力,结果就是这样 return "<script type=\"text/javascript\">document.write(\"<img src=\"U

我需要用java将其转换为字符串:

 <script type="text/javascript">document.write("<img src=\"UpArrow.png\" /> \"); </script>
document.write(“\”);
有人能帮忙吗?我一直在努力,结果就是这样

return "<script type=\"text/javascript\">document.write(\"<img src=\"UpArrow.png\" /> \"); </script>";
返回“document.write(\“\”);”;
这不起作用,因为我需要在UpArrow.png前后双重转义引号。因为它需要在javascript中转义,而不是在java中转义

2019更新:如果你看到了这一点,愿上帝保佑你的灵魂。这是一个糟糕的代码,如果你试图用这种方式做事,那你就是做错了(正如其他人向我建议的那样)

正确的方法是jquery或现在存在的无数DOM修改框架之一,并将内容放入/移出DOM范围


如果你正在这样做,你不应该看上面的代码或下面的解决方案,而是应该去了解更多,因为这是一条生成意大利面代码的路径。

Apache commons在中有一个方法:escapeJavaScript方法。

看起来它是在Apache commons Lang 3中移动的,以在StringEscapeUtils中转义ECMASCRIPT


它似乎又被移动了,现在它是“公共文本”的一部分,命名为:

StringEscapeUtils.escapeEcmaScript

但它仍然存在。

你必须避开
\
(它将变成
\\\”
)这看起来并不是一个特别好的主意。我不想通过java来维护在html页面中嵌入javascript函数的代码。不幸的是,这不是我的项目来规定的。我为使用php/ajax进行了一场激烈的斗争,并在使用JSP/javascript/Xhtml时陷入困境。java/JSP没有什么问题,只是设计不好,伊姆豪厄尔,需要这样做在运行时包含基于数据库结果的图像也不是我的主意。在明天的截止日期之前,我没有太多其他方法可以处理这个问题。这对于转义动态构建的Javascript字符串的一部分很好,但我不确定这正是OP想要的。看起来我的意图是获取一个静态的HTML/Javascri片段pt text并将其作为Java字符串文本转义。如果您希望执行javascript(of document.write here)参数,还必须转义简单引号。这是通过此方法完成的,您可以从静态文本初始化中调用它,该初始化将(稍微)比自己转义更干净。我同意你的观点,应该尽可能避免使用这种java+html+javascript代码。org.apache.commons.lang3.StringEscapeUtils没有此功能…任何想法?适用于大多数情况,但请注意,StringEscapeUtils不能正确地支持某些只支持端口ISO 8859-1(拉丁语-1)编码,但不支持
\uxxx
unicode转义语法。为什么它们不断移动,我必须不断重构