web中的contentType

来源:互联网 发布:vsftp centos怎么用 编辑:程序博客网 时间:2024/05/17 00:00

response.setContentType("text/html; charset=GBK");

 

Content Type指的是一种被称为MIME的标准所定义的类型。它对浏览器非常重要,因为现代的浏览器可以处理非常丰富的资料类型,比如:HTML、纯文本、各种格式的图片(JPEGGIFPNG等)、视频、音频文件等。所有的资料都是同过相同的方式传送给浏览器的。那么浏览器怎么知道服务器传给它的是什么东西呢?答案就是通过Content Type

 

response.setContentType("text/html; charset=GBK");

设置输出数据的字符编码。

 

对于所有的文本类型的响应(text/*),在指定Content Type的同时,还应该指定一个字符集编码,例如:charset=GBK

这个设置会产生两个效果:

1.         告诉浏览器,用GBK编码来解释该页面中的字符。

2.         告诉应用服务器,在输出页面时,将Unicode字符转换为GBK编码。

对于浏览器页言,即使你不在Content Type中指定charset,有时也是可以接受的。现在的浏览器都很聪明,它会根据一系列的规则来确定当前网页的编码是什么:

1.         如果Content Type没指定,它就会去看HTML中有没有这句话:

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GBK">

2.         如果都没找到,就使用系统默认的编码。例如,你安装的是简体中文Windows,那么GBK就是默认的字符集编码。

然而,这个charset参数如果不设,会对应用服务器造成麻烦 —— 因为应用服务器可能会用默认的ISO-8859-1编码来转换Unicode字符,一旦你的页面中包括了该编码范围之外的字符(如中文字),页面上就会出现乱码。这是一种常见的错误。因此,为了确保应用程序具有最好的兼容性,必须正确地设置charset参数。

 

需要注意的是:charset必须在response.getWriter()方法之前调用!

原创粉丝点击