在Jsp Page中显示字符编码问题

时间:2011-10-10 11:17:22

标签: jsp character-encoding

我编写了jsp页面,其中我使用gb2312 charset创建String,然后我将字符串传递给JSP页面。但是在jsp页面中,我将pageencoding和meta标签作为UTF-8。我期待字符必须显示为垃圾字符,并且在我将浏览器中的字符编码更改为gb2312后,必须正确显示。但实际发生的是在UTf-8本身,它显示为正确的。但是,当我将其更改为gb2312字符编码时,它已显示为垃圾编码。请帮忙。我究竟做错了什么。帮助纠正我。

1 个答案:

答案 0 :(得分:1)

String没有编码。它只是一个字符数组,每个字符都有一个通用的unicode值。

只有当字符必须转换为字节,保存在文件中或流式传输到浏览器时,才能使用编码将字符转换为字节。

由于您在JSP的页面编码指令中说它必须使用UTF-8,因此您的字符串已编码为UTF-8。由于响应头,浏览器知道它是UTF-8,因此将从服务器接收的字节正确转换为字符。

如果你告诉浏览器忽略编码集作为响应头,并使用gb2312,浏览器将尝试将字节解释为gb2312,因为它是UTF-8,它将显示不正确的字符。

相关问题