中文乱码:在以后学习过程中全部采用UTF-8

1、文件的乱码
1.1、项目文本文件默认编码:
       【右击项目】->【Properties】->【Resource】->【Text file encoding】     
 
1.2、文件默认编码:默认使用项目的默认编码
     【右击文件】->【Properties】->【Resource】->【Text file encoding】
1.3、 JSP 文件编码:由于 JSP 要翻译为 Servlet
1.3.1、JSP文件编码:
     【右击文件】->【Properties】->【Resource】->【Text file encoding】
1.3.2、JSP翻译为Servlet时的编码:
   <%@ page language="java" pageEncoding="utf-8"%>
中文乱码:在以后学习过程中全部采用UTF-8
2、浏览器和服务器间传输数据的乱码
 
2.1、 浏览器端 编码,一般由服务器端告诉浏览器如何解码数据:
2.1.1、Servlet
          response.setContentType("text/html; charset=UTF-8");
        或者  response.setCharacterEncoding(“UTF-8”);
   2.1.2、JSP
         <%@ page language="java" contentType="text/html; charset=utf-8" %>
   2.1.3、通用
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
注:浏览器编码可以由我们手工修改,但最后不要这样,一般让浏览器自动选择即可。
中文乱码:在以后学习过程中全部采用UTF-8
2、浏览器和服务器间传输数据的乱码
 
2.2、 服务器端 编码,将客户端传过来的数据进行解码:
      浏览器默认使用ISO-8859-1进行编码数据,然后将数据传输到服务器,因此我们默认只需要将浏览器发送过来的数据转换为我们需要的编码即可。
2.2.1、最简单方式:
    String username = request.getParameter(“username”);
       username = new String(username.getBytes("ISO-8859-1“), "UTF-8");
   2.2.2、比较好的解决方案
      // 必须 在获取参数之前,调用如下方法先解码
       request.setCharacterEncoding(“UTF-8”);
      String username = request.getParameter(“username”);
2.4、比较通用方案:在一个Filter中更改所有请求的编码方式:
    1、在src中添加filter来设置编码格式是中文,filter类可以在tomcat的包里面:apache-tomcat-6.0.16.zip\apache-tomcat-6.0.16\webapps\examples\WEB-INF\classes\filters下面,SetCharacterEncodingFilter.java文件
 
     2 、在 web.xml 中配置 filter ,具体配置如下页:
<filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param><param-name>encoding</param-name>
                            <param-value>utf-8</param-value></init-param>
</filter>
<filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
2.5、 GET提交方式中文乱码解决
通过修改request.setCharacterEncoding(“UTF-8”);只能解决POST提交方式的请求编码,对GET无效。
 
     1 、最简单解决方案: 解决方案不再需要任何额外配置(如filter)
           TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下
             <Connector port="8080" protocol="HTTP/1.1"
                                connectionTimeout="20000"
                                redirectPort="8443" URIEncoding=”UTF-8”/>
     2 、在 tomcat4 之后,可以通过如下配置来解决中文乱码,但必须配置 filter
         在conf\server.xml文件中设置如下
                    <Connector port="8080" protocol="HTTP/1.1"
                                        connectionTimeout="20000"
                                        redirectPort="8443" useBodyEncodingForURI=“true”  />
         然后request.setCharacterEncoding(“UTF-8”)也可解决GET乱码
 
 
 
 

Java Web开发 之小张老师总结中文乱码解决方案的更多相关文章

  1. Java Web开发 之小张老师总结EL、JSP、Servlet变量

    EL 11 JSP 9 Servlet JSP类别 pageContext pageContext * 作用域 pageScope pageContext.getAttribute() * reque ...

  2. Java Web开发 之小张老师总结GET和POST区别

    get和post区别1.传输方式不同,get在request-line中传输(即在URL中传输).post在request-line及 request-body中传输(可认为隐藏传输)2.get传输长 ...

  3. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  4. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  5. 【转】 java web开发之安全事项

    从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然.直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库.还好,我还没有用root级的用户连接数据库.不过也没有什么用了,因为我 ...

  6. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  7. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  8. 《Java web 开发实战经典》读书笔记

    去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...

  9. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

随机推荐

  1. 控制GridView中字段的长度,规范数据

    前台:   <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridVi ...

  2. cplusplus解析

    经常在头文件包含代码里面看到如下代码 #ifndef MAC_API_H #define MAC_API_H #ifdef __cplusplus extern "C"{ #end ...

  3. Poj 3117 World Cup

    1.Link: http://poj.org/problem?id=3117 2.Content: World Cup Time Limit: 1000MS   Memory Limit: 65536 ...

  4. [java学习笔记]java语言核心----面向对象基础

    1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...

  5. 真正的inotify+rsync实时同步 彻底告别同步慢

    真正的inotify+rsync实时同步 彻底告别同步慢       http://www.ttlsa.com/web/let-infotify-rsync-fast/     背景 我们公司在用in ...

  6. KnockoutJS(1)-数据模型

    前言 说到数据模型(ViewModel),就不得不提到MVVM模式,接触过WPF和Silverlight的人应该对这个模式比较熟悉. 不熟悉也没多大关系,因为KnockoutJS的使用相对简单. MV ...

  7. JS远程获取网页源代码的例子

    js代码获取网页源代码. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> < ...

  8. php正确解码javascript中通过escape编码后的字符

    js的escape如何在PHP中来解呢? 下面的这个函数可以正确的解析,网上有不少unescape的函数,但好用的不多. 这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~ function ...

  9. jquery.prompt.js 弹窗的使用

    /*** * Prompt提示语插件 * 编写时间:2013年4月8号 * version:Prompt.1.0.js * author:小宇<i@windyland.com> ***/ ...

  10. Eclipse编辑器基本设置

    1.添加行号 在边缘处右键 2.改字体 字体的一般配置 3.去掉拼写错误检查 4.Java代码风格 代码格式化 Ctrl + Shift + F 之后点击右边的New按钮,新建一个风格. 点击OK 上 ...