JSP页面中,二处的字符编码有何区别及response 3 种设置编码的方式
是服务器端java程序运行时的输出编码,即服务器端以什么样的编码向客户端输出HTML时采用的编码.
是指客户端浏览器以什么样的编码来显示网页,指导浏览器解析服务器端传入的HTML流. 同时它还有一个作用,指导其提交表单的时候使用什么编码传入request.
request.setCharacterEncoding("gbk")//把页面参数按gbk编码后传入服务器端
同理:
在servlet中用response的#3#种设置输出内容的编码方式,有以下三个方法:
1、response.setCharacterEncoding("UTF-8")
2、response.setContentType("text/html;charset=UTF-8")
相当于服务端解析:
3、response.setLocale(new java.util.Locale("zh","CN"))
下面来分析一下三种方法之间的不同之处:
第一种方法只能用来设置out输出流中所采用的编码,但是他的优先权最高,可以覆盖后两种方法中的设置;
第二中方法即可以设置out输出流中字符的编码方式,也可是设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法,但高于第三种方法;
第三种方法也只能用来设置out输出流中字符的编码方式,但是它的优先权最低,在已经用前两种方法之一设置了编码方式以后,它就被覆盖而不起作用了。
[HTML]关于HTML中文乱码问题
2008-11-03 15:03:51| 分类: HTML | 标签:|字号大中小
大家都知道解决HTML中文乱码问题的方法是在HTML文件头中加入以下代码:
而charset的设值我们常用的有gb2312,gbk,utf-8三个,那到底应该设哪个呢?为什么有时我们已经加入了这行代码还是会出现中文乱码呢?因为我们忽略了一样东西,那就是HTML文件的实际编码方式,如果HTML文件的实际编码方式和charset设定的相同就不会出现HTML中文乱码问题,如果不同就可能出现中文乱码,但有例外的情况:如果实际编码为utf-8,则charset设为uft-8或gbk都不会乱码,原因不清楚。
关于Dreamweaver与HTML编码方式:
1. 在Dreamweaver中新建的HTML文件实际编码为“编辑-首选参数-新建文档-默认编码”中设定的编码;
2. 用Dreamweaver打开一个已存在的HTML文件并修改保存时,如果用“另存为”则Dreamweaver会按修改后charset中设定的编码方式保存;如果用默认保存则有以下两种情况:a.如果原HTML文件中,实际编码和charset中设定的不相同,则Dreamweaver会按原charset中设定的编码方式保存;b.如果相同则按原实际编码方式保存。
避免HTML中文乱码可参考以下两点做法:
1. 在“Dreamweaver-编辑-首选参数-新建文档-默认编码”中设定常用编码方式,如:utf-8;
2. 用Dreamweaver新建HTML文件。
避免HTML中文乱码的关键:确保HTML文件实际编码方式和charset设定的编码方式一致。
当然,所设的编码方式必须是系统支持的,这是最基本的。