我有一些 HTML 代码存储在 Java.lang.String 变量中。当将字符串变量的内容写入文件系统上的文件时,我将该变量写入文件并将编码设置为 UTF-8。我打开那个文件,一切看起来都很棒,例如→ 显示为右箭头。
但是,如果jsp页面使用相同的String(包含相同的内容)在浏览器中渲染内容,→等字符显示为问号(?)
在 String 变量中存储内容时,我确保使用:
String myStr = new String(bytes[], charset)
而不仅仅是:
String myStr = "<html><head/><body>→</body></html>";
有人能告诉我为什么字符串内容可以完美地写入文件系统但不能在 jsp/浏览器中呈现吗?
谢谢。
最佳答案
but does not render in the jsp/browser?
您还需要设置响应编码。在 JSP 中,您可以使用
<%@ page pageEncoding="UTF-8" %>
这实际上与在 HTML 中设置以下元标记具有相同的效果 <head>
:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
关于Java 字符串编码为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745478/