各类编码设置有什么用?java内行人进,禁止不懂乱说

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:46:51
1.eclipse点击文件的属性有文本文件编码
2.response.setContentType("text/html; charset=UTF-8");//jsp
3.request.setCharacterEncoding("GBK");//java
4.getBytes("iso8859-1"),"UTF-8");//再接收参数时以为可以被3 功能代替
5.response.setcharacterencoding("GBK");//这个我jdk没有,奇怪

这些编码设置把我烦透了
一、各有什么用?
二、比如我把response.setContentType("text/html; charset=UTF-8")而在jsp文件里写了中文,就不能正常显示?
三、哪些和文件之间传递参数有关,有些时候,我在a.jsp
a 为response.setContentType("text/html; charset=UTF-8")
中输入中文,提交到servlet中,打印出来是????????,到底怎么设置才能匹配?
四、为什么有的时候非要用4来转换,用3也没用呢?

麻烦各位高手赐教,伤透脑袋了,您就是起航灯,指导我的方向

关于以上的4种编码设置你可以参考里面讲的很详细:http://cheney-mydream.javaeye.com/admin/blogs/405419
1、关于你在jsp里写了中文不能显示的问题,首先,你jsp本身采用的是什么格式?如果是非utf-8的话就会产生乱码,因为你的服务器的应答使用utf-8,编码格式。
2、只要是response和request的方法大部分都和传递文件有关系。
3、在servlet中打印出来的乱码,要看你request设置的请求和本身jsp的编码格式是否相符
4、3是在客户端设置的,4是在服务器端设置的,数据在传输过程中会经过很多次编码jsp、浏览器等等。有时候单靠3还不能解决问题

2的作用是设置jsp网页的编码是UTF-8(国际标准编码),防止jsp网页乱码
3的作用是设置显示的东西是中文,防止乱码
4的话你没写全,应该是request.getParamter("")getBytes("iso8859-1");
是防止你从session接收的值是中文,从而帮你装换,也是解决乱码问题
5和2是一样的作用
关于你提交到Servlet中的打印出来是乱码的问题还有种解决方法,就是Servlet中有句话response.setContentType("text/html);看见了吗?看见了把这句话改成response.setContentType("text/html;charset=gb2312");这样你再试试看就没乱码的问题了。(这样写的意思是把你的输入转换成GB2312,就是把你输入的变成中文)。祝你学好。

统一用一种编码,一般不会出问题