java网页转码问题

用get post请求测试
<%=response.getCharacterEncoding()%>
输出结果均为ISO-8859-1 张三
貌似以前有转码问题。
现在却没有出现乱码。
右击IE9 查看火狐 编码。发现默认均为GB-2312,改为UTF-8,出现乱码
猜测是浏览器升级,自动将ISO-8859-1编码转换为GB2312了?
对编码问题理解的不是很到位。
是不是在老版本的IE中,依然会出现编码问题。老版本的IE默认的是什么编码。。。?
请问还今后还需要修改编码么?
由于浏览器版本的问题?求具体原因解释。。如何处理最好?

第1个回答  2013-01-10
不知道你在编译的时候,是以什么编码编译的。
比如你编译的时候,是 ISO-8859-1
那么你的工程中所有的汉字都是以这个编码处理的,在这种字符集下显示自然不是问题。

就是和你在浏览器中用A字符集看一个页面没有问题,换一个编码,就是乱码了一样的。
解决办法,
1.保持页面字符集与request.中的字符集一致,最好用过滤器。
2.使用properties文件来定义画面是显示项目。这个参考一下struts。

这个问题与浏览器的版本什么的关系不大。
第2个回答  2013-01-09
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
你的jsp页面有没有这句声明编码方式?
你是提交到别的jsp页面出现乱码还是打开jsp就出乱码?如果是前者,提交前使用
request.setCharacterEncoding("gb2312");
当然能用过滤器设置更好。
第3个回答  2013-01-09
把所有的都设置成UTF-8,jsp页面前加一句
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

然后servlet里面也要设置在get post 方法前加两句
request.setCharacterEncoding("utf-8");
response.setContentType("text/html,charset=utf-8");
浏览器都不用改的,到后面直接这些都用不着了,直接用过滤器就OK了,
第4个回答  2013-01-09
浏览器解释你的网页所用的默认编码,取决于你在meta标签中标识出来的编码追问

我没有写meta标签呢?

追答

他可能会用浏览器默认编码,或者可能能解释页面的代码,但肯定在不同浏览器下会出现问题。所以还是写上的好

最好是方式还是,要么写meta标签指定字符集,要么在<%@page里面指定字符集

第5个回答  2013-01-09
楼主好专业,哪儿学的?追问

自学

相似回答