Java 字符串编码为 UTF-8

标签 java string jsp encoding character-encoding

我有一些 HTML 代码存储在 Java.lang.String 变量中。当将字符串变量的内容写入文件系统上的文件时,我将该变量写入文件并将编码设置为 UTF-8。我打开那个文件,一切看起来都很棒,例如→ 显示为右箭头。

但是,如果jsp页面使用相同的String(包含相同的内容)在浏览器中渲染内容,→等字符显示为问号(?)

在 String 变量中存储内容时,我确保使用:

String myStr = new String(bytes[], charset)  

而不仅仅是:

String myStr = "<html><head/><body>&rarr;</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/

相关文章:

比较C中不同字符串的两个字符

c - strlen 在具有未初始化值未定义行为的字符串上吗?

java - 你如何使用 "Range"来累积扫描整个表

java - 最终作为参数传递

java - 如何在 SAP HANA XS 项目中使用外部 jar 库

java - 从字符串中提取模式

Java Servlet/JSP Cookie 断开连接

java - 如何使用Servlet和Ajax?

java - 使用 Spring :message tag inside of form:input tag in Spring MVC

java - 相反的世界 "XML Parsing Error: not well-formed"错误