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