Java HTML中的代码和问号转换

Java HTML中的代码和问号转换,java,html,jsp,Java,Html,Jsp,所以我在使用JSP时遇到了一个问题 我向HTML页面发送代码,该页面将部分代码转换为“?” 我发送到HTML页面的代码: "assertEquals('\uD83D\uDE30\', StringEscapeUtils.escapeCsv('\uD83D\uDE30\'));", 它在html页面中的显示方式: assertEquals("?", StringEscapeUtils.escapeCsv("?")); 所以,我想保留代码,而不是将其解析为“?” 有人知道怎么做吗?我假设您想打印

所以我在使用JSP时遇到了一个问题

我向HTML页面发送代码,该页面将部分代码转换为“?”

我发送到HTML页面的代码:

"assertEquals('\uD83D\uDE30\', StringEscapeUtils.escapeCsv('\uD83D\uDE30\'));",
它在html页面中的显示方式:

assertEquals("?", StringEscapeUtils.escapeCsv("?"));
所以,我想保留代码,而不是将其解析为“?”
有人知道怎么做吗?

我假设您想打印字符串

assertEquals('\uD83D\uDE30\', StringEscapeUtils.escapeCsv('\uD83D\uDE30\'));
就像它在网页上一样

下面的代码产生了您在问题中给出的错误输出

PrintWriter out = res.getWriter();
    out.print("assertEquals('\uD83D\uDE30\', StringEscapeUtils.escapeCsv('\uD83D\uDE30\'));");
但是,在上面的“\”中再添加一个,将打印正确的输出

PrintWriter out = res.getWriter();
    out.print("assertEquals('\\uD83D\\uDE30\\', StringEscapeUtils.escapeCsv('\\uD83D\\uDE30\\'));");
“\u”是unicode转义,而“\u”不是

在我看来 打印时,打印机将\uD83D视为unicode 并尝试对其进行解码,当无法解码时,打印“?”


当您添加额外的“\”时,\uD83D将变成一个简单的字符串并按原样打印。

看起来像是编码问题!!您可能需要创建一个
\u
值数组,并将其发送到页面,然后让浏览器(javascript)将其转换为字符,然后重新构造assert语句。否@Pikamander2它不=/双字节序列解码为“