`

有关保存文件时的编码选项与html/jsp页面设定字符编码的配置

    博客分类:
  • html
 
阅读更多

 

分两种情况介绍 
注:首先,各位得对一次 请求/响应 的流程有基本认识,即:浏览器发出请求--》服务器接收并处理请求--》将html形式的页面返回(响应)给浏览器,一次 请求/响应 完毕! 

静态页面(html): 

                          保存文件时的编码选项(默认为ANSI,中文操作系统ANSI即为GBK)必须得与html页面中的content-Type(即在meta标签中配置的 http-equiv="content-Type")中的配置的码一致,访问此页面时才不会出现乱码。(若不显示定义meta标签,则默认是meta标 签中给出的是系统ANSI编码,中文操作系统是GBK)

Java代码
  1. <meta http-equiv="content-Type" content="text/html;charset=字符编码">  
[java] view plaincopy
  1. <meta http-equiv="content-Type" content="text/html;charset=字符编码">  



                          原因:web服务器接收到静态请求后(如对html页面的请求),web服务器仅仅是从目录结构中搜索到它,并将它以流的形式返回,而它的编码类型在保存 文件时已经确定了,而上面的meta标签就是告诉浏览器以何种字符编码去解码,所以保存文件时的编码选项必须得与html页面中的content- Type中的配置的字符编码一致。 


动态页面(jsp): 

                          保存文件时的编码选项必须与jsp页面中的pageEncoding属性中配置的编码一致(或者在没有pageEncoding属性时与 contenType属性中配置的编码一致,两者的优先级是:pageEncoding>contentType),才不会出现乱码。

Java代码
  1. <%@page contentType="text/html;charset=字符编码" pageEncoding="字符编码"%>  
[java] view plaincopy
  1. <%@page contentType="text/html;charset=字符编码" pageEncoding="字符编码"%>  



                          原因:web容器会根据pageEncoding中的编码将jsp页面转换成servlet文件(若没有pageEncoding属性,则使用 contentType中的编码将jsp文件转换成servlet),其原理也就是以流的形式读jsp文件,所以保存jsp文件时的编码选项必须与 pageEncoding属性中配置的字符编码一致(或者在没有pageEncoding属性时与contenType属性中配置的编码一致)。而在 servlet中生成html文件时使用的是contentType中配置的编码将html页面以流的形式输出(若没有设置contentType中的 charset则使用的是pageEncoding,此时,与之前不同,它们的优先级是contentType>pageEncoding),浏览 器也会以contentType中的编码(或pageEncoding)来解码(之所以这么说是因为浏览器根据响应头来解码,而他们恰恰改变的是响应 头)。所以contentType中的编码可以与jsp文件保存时的编码选项不同(因为在有pageEncoding属性的情况下,他们之间没有直接联 系,但若没有pageEncoding属性则另当别论,原因上面已经说过)!

 

实验结果:

正常中文

pageEncoding="UTF-8" contentType="text/html; charset=gbk"

以utf-8格式保存的

显示的时候页面编码格式是 gbk 



正常中文

pageEncoding="UTF-8" 

以utf-8格式保存的

显示的时候页面编码格式是 utf-8 


乱码中文

pageEncoding="UTF-8" contentType="text/html; charset=gbk"

以ascii格式保存的

显示的时候页面编码格式是 gbk 




乱码中文

pageEncoding="UTF-8" 

以asscii格式保存的

显示的时候页面 编码格式 是 utf-8

 

正常中文

contentType="text/html; charset=gbk"

以ascii格式保存的

显示的时候页面编码格式是gbk



正常中文(这个结果的原因在探索中,估计是utf-8格式包容 ascii格式)

contentType="text/html; charset=gbk"

以ascii格式保存的

显示的时候页面编码格式是gbk


分享到:
评论

相关推荐

    myeclipse(设置JSP页面编码格式)【图解很详细的】

    在开发Web应用时,正确设置JSP页面的编码格式至关重要,因为这直接影响到网页内容的显示,特别是处理中文字符时。MyEclipse作为一款强大的Java EE集成开发环境,提供了便捷的方式来配置JSP页面的编码。以下将详细...

    MyEclipse字符编码设置

    在IT开发环境中,字符编码的正确设置至关重要,尤其是在使用集成开发环境(IDE)如MyEclipse时。MyEclipse字符编码的设置对于处理各种类型的文本文件,尤其是涉及到中文字符的文件,有着决定性的影响。本篇文章将...

    JSP在Servlet中的几个编码的作用及原理

    标题 "JSP在Servlet中的几个编码的作用及原理" 指向的是Java Server Pages (JSP) 和 Servlet 技术中关于字符编码的关键概念。在Web开发中,尤其是在处理多语言用户输入时,正确的编码处理至关重要,以避免乱码问题。...

    MyEclipse下的字符编码和外部编辑器和Tomcat配置.doc

    在使用MyEclipse进行开发时,正确的字符编码配置和外部编辑器的设定至关重要,同时,与服务器如Tomcat的集成也是提升开发效率的关键。本文将详细介绍如何在MyEclipse环境中进行这些配置。 首先,我们来看如何配置...

    Eclipse更改默认字符集

    4. 设定 Java 文件编码:在"首选项"对话框中,选择"Java"-&gt;"Installed JREs",然后移除原来的 MyEclipse 自带的 Jdk6.0,从新配置 Jdk1.6.0_06。 更改 Eclipse 的默认字符集为 UTF-8 是为了使插件开发应用能有更好...

    JSP编码过滤

    【JSP编码过滤】是Web开发中一个至关重要的主题,主要涉及到如何正确处理用户输入的字符编码,以防止乱码问题并确保数据安全。在JavaServer Pages (JSP) 中,编码过滤通常是为了确保请求参数、响应内容以及静态资源...

    字符乱码de.pdf

    1. JSP文件的字符编码:JSP文件的编码会影响其中的文本内容。 2. 请求参数来源页面的字符编码:源页面的编码会影响链接中的中文字符如何编码。 3. 浏览器设置:例如,IE的“总以UTF-8方式发送URL地址”选项。 4. ...

    Tomcat+JSP经典配置实例

    在这个文件中,你可以设定JSP的默认编码、错误页面、过滤器等。例如,添加一个字符编码过滤器可以确保所有请求和响应都使用UTF-8编码: ```xml &lt;filter-name&gt;characterEncodingFilter&lt;/filter-name&gt; ...

    JSP乱码解决

    - **数据库编码**:如果使用了数据库,检查数据库连接字符串中的字符集编码是否与JSP页面和Apache服务器设置相匹配。 #### 四、高级调试技巧 在处理复杂的编码问题时,可以考虑以下进阶策略: - **使用UTF-8编码*...

    JSP课程各章节选择题答案..pdf

    13. 设置响应编码:避免乱码通常使用`response.setCharacterEncoding()`方法(B选项)来设定响应的字符编码。 14. JDBC库导入:在JSP中使用JDBC访问数据库,需要导入SQL相关的类库,正确的导入语句是`*" %&gt;` 这些...

    生成验证码图片的jsp代码

    7. **存储验证码值**:为了验证用户输入,需要将生成的验证码字符串安全地存储在一个会话(session)或Cookie中,供后续页面提交时比对。 在JSP中,你可以创建一个名为`captcha.jsp`的文件,其中包含上述逻辑。由于...

    解决web项目开发中常见的中文乱码问题.pdf

    IDE(如Eclipse、IntelliJ IDEA)一般都有设置文件编码的选项,确保其与项目编码一致,避免在编辑和保存文件时引入乱码。 5. **数据库编码** 数据库表字段的编码也需要与应用程序的编码匹配。例如,如果应用使用...

    struts,ajax乱码解决方案

    charset=UTF-8" %&gt;`来设置页面编码,或者在Java代码中使用`request.setCharacterEncoding("UTF-8")`来设定请求的字符编码。 - **Struts**:在Struts框架中,解决乱码通常需要使用过滤器。可以创建一个自定义过滤器...

    eclipse中常用配置

    在`window-&gt;preferences-&gt;general-&gt;Content Types`中,你可以选择不同类型的文件并设定它们的默认编码,例如UTF-8,以确保文件在打开和保存时保持正确的字符显示。 其次,编辑器的字体和大小直接影响到编程体验。...

    jsp程序设计考试题及答案.doc

    1. JSP Page指令:`&lt;% page %&gt;`指令用于定义JSP页面的全局属性,例如导入包、设定字符编码等。可以在一个页面中使用多个,每个指令作用于整个页面,且同一属性只应出现一次。为了可读性,最好置于文件开头,但这不是...

    JavaEE乱码等实用指南

    在web.xml中配置过滤器,并指定字符编码,例如: ```xml &lt;filter-name&gt;CharacterEncodingFilter&lt;/filter-name&gt; &lt;filter-class&gt;javax.servlet.jsp.jstl.fmt.CharsetSupportFilter&lt;/filter-class&gt; &lt;param-name&gt;...

    JSP课程各章节选择题答案..docx

    13. **设置字符编码**:为了避免乱码,通常使用`response.setCharacterEncoding("charset")`来设定响应的字符编码。 14. **JDBC导入**:在JSP中,通过`*" %&gt;`导入JDBC相关的类库,以进行数据库操作。 15. **JDBC...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥...

    FCKeditor

    2. **配置Web项目**:确保项目配置正确,包括字符编码、Servlet容器等。 3. **创建JSP页面**:在项目中创建一个新的JSP页面,按照上面的示例代码引入FCKeditor并创建实例。 4. **运行测试**:在MyEclipse中启动内置...

    secyrity加载tomcat

    此外,Web相关的文件如JSP也需要设置为UTF-8编码。对于Maven的pom.xml文件,同样需要设置编码为UTF-8。 创建Spring MVC Web项目,通过STS的“文件”&gt;“新建”&gt;“Spring Project”,选择Spring MVC模板,输入项目...

Global site tag (gtag.js) - Google Analytics