繁体   English   中英

Java字符串编码为UTF-8

[英]Java String Encoding to UTF-8

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

但是,如果jsp页面使用相同的String(包含相同的内容)来在浏览器中呈现内容,则诸如→之类的字符将显示为问号(?)

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

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

而不只是:

String myStr = "<html><head/><body>&rarr;</body></html>";

有人可以告诉我为什么String内容完美地写入文件系统但不在jsp /浏览器中呈现?

谢谢。

但是没有在jsp /浏览器中呈现?

您还需要设置响应编码。 在JSP中,您可以使用

<%@ page pageEncoding="UTF-8" %>

这实际上与在HTML <head>设置以下元标记的效果相同:

<meta http-equiv="content-type" content="text/html; charset=utf-8">

可能性:

  1. 浏览器不支持UTF-8
  2. 你没有Content-Type: text/html; charset=utf-8 您的HTTP标头中的Content-Type: text/html; charset=utf-8

懒惰的开发人员(= me)使用Apache Common Lang StringEscapeUtils.escapeHtml http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringEscapeUtils.html#escapeHtml(java.lang.String)这将帮助您处理所有'奇怪'字符。 让浏览器对html实体进行最终翻译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM