UTF8和jsp,试图了解发生了什么

时间:2011-06-06 14:18:40

标签: java utf-8 character-encoding

我创建了以下jsp:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
<%
byte[] oe1 = {-61,-123};
byte[] oe2 = {-123,-61};
byte[] oe3 = "œ".getBytes("UTF-8");
%>
byte[] oe1 = {-61,-123}: '<%=new String(oe1, "UTF-8")%>'<br/>
byte[] oe2 = {-123,-61}: '<%=new String(oe2, "UTF-8")%>'<br/>
byte[] oe3 = "œ".getBytes("UTF-8"): '<%=new String(oe3, "UTF-8")%>'<br/>
oe3[0], oe3[1]: <%=oe3[0]%>, <%=oe3[1]%>
    </body>
</html>

其中列出以下内容:

byte[] oe1 = {-61,-123}: '�'
byte[] oe2 = {-123,-61}: '??'
byte[] oe3 = "œ".getBytes("UTF-8"): 'œ'
oe3[0], oe3[1]: -61, -123 

我在这里缺少什么。为什么oe3工作但不是oe1或oe2。这里可能存在一些我不理解的编码

2 个答案:

答案 0 :(得分:4)

将它添加到JSP的顶部,让它使用UTF-8打印字符,让浏览器将响应解释为UTF-8。

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

<meta>标记不会这样做。更重要的是,当通过HTTP提供页面时,忽略

另见:

答案 1 :(得分:2)

要添加到BalusC答案,还可以在web.xml文件中全局设置jsp编码: http://bordet.blogspot.com/2007/09/jsp-page-encoding.html