来自 http://ligure.iteye.com/blog/

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

1.1、项目文本文件默认编码:

       【右击项目】->【Properties】->【Resource】->【Text file encoding】    

1.2、 JSP 文件编码:由于 JSP 要翻译为 Servlet

1.2.1、JSP文件编码:

     【右击文件】->【Properties】->【Resource】->【Text file encoding】

1.2.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、最简单方式:

  1. String username = request.getParameter(“username”);  
  2. 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 ,具体配置如下页:

  1. <filter>  
  2.         <filter-name>Set Character Encoding</filter-name>  
  3.         <filter-class>filters.SetCharacterEncodingFilter</filter-class>  
  4.         <init-param><param-name>encoding</param-name>  
  5.         <param-value>utf-8</param-value></init-param>  
  6. </filter>  
  7. <filter-mapping>  
  8.         <filter-name>Set Character Encoding</filter-name>  
  9.         <url-pattern>/*</url-pattern>  
  10. </filter-mapping>  

2.5、 GET提交方式中文乱码解决

通过修改request.setCharacterEncoding(“UTF-8”);只能解决POST提交方式的请求编码,对GET无效。

     1 、最简单解决方案: 该解决方案不再需要任何额外配置(如filter)

           TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下

           

  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                                connectionTimeout="20000"  
  3.                                redirectPort="8443" URIEncoding=”UTF-8”/>  

     2 、在 tomcat4 之后,可以通过如下配置来解决中文乱码,但必须配置 filter

         在conf\server.xml文件中设置如下

                  

  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                                        connectionTimeout="20000"  
  3.                                        redirectPort="8443" useBodyEncodingForURI=“true”  />  

         然后request.setCharacterEncoding(“UTF-8”)也可解决GET乱码

Java WEB 乱码解决大全的更多相关文章

  1. Java Web乱码原因与解决

    Java Web乱码原因与解决 一.了解编码常识: 1.ASCII 码 众所周知,这是最简单的编码.它总共可以表示128个字符,0~31是控制字符如换行.回车.删 除等,32~126是打印字符,可以通 ...

  2. Java Web中解决乱码的方式

    Java Web中解决乱码的方式 方式一:添加编码过滤器 package com.itmacy.dev.filter; import javax.servlet.*; import javax.ser ...

  3. java中文乱码解决之道(九)-----总结

    乱码,我们前台展示的杀手,可能有些朋友和我的经历一样:遇到乱码先按照自己的经验来解决,如果没有解决就google,运气好一搜就可以解决,运气不好可能够你折腾一番了.LZ之所以写这个系列博客就是因为遇到 ...

  4. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  5. java中文乱码解决之道(七)-----JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  6. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)—–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  7. java中文乱码解决之道(七)—–JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  8. java 项目乱码解决(web.xml全局配置编码格式)

    <!-- 乱码解决 --> <filter> <filter-name>encodingFilter</filter-name> //过滤器名称 < ...

  9. java中文乱码解决之道(一)-----认识字符集

    沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.c ...

随机推荐

  1. centos 7 java1.8安装

    java安装 检查版本信息,如果版本小于1.8,执行以下命令 java -version java version "1.8.0_144"Java(TM) SE Runtime E ...

  2. Webpack+Typescript 简易配置

    教程:https://www.cnblogs.com/yasepix/p/9294499.html http://developer.egret.com/cn/github/egret-docs/ex ...

  3. 第八次oo作业

    作业五 作业五是当前最后一次电梯作业,也是我们第一次接触到多线程编程,输入方式也由之前的一次性输入变为了实时输入,其中涉及到大量的同步和冲突,其中学习多线程的使用也花了大量的时间,但总的来说为以后的作 ...

  4. [LeetCode] Department Highest Salary -- 数据库知识(mysql)

    184. Department Highest Salary The Employee table holds all employees. Every employee has an Id, a s ...

  5. [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想)

    2018年01月03日阅读 2472   [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想) LYEmptyView 此框架是本人在5,6个月前,公司启动新项目的时候, ...

  6. scrapy之五大核心组件

    scrapy之五大核心组件 scrapy一共有五大核心组件,分别为引擎.下载器.调度器.spider(爬虫文件).管道. 爬虫文件的作用: a. 解析数据 b. 发请求 调度器: a. 队列 队列是一 ...

  7. 解决mysql1336

    1.mysql字符集与插入数据字符集不匹配 USE 数据库名称SHOW VARIABLES LIKE 'character%'SET character_set_server=utf8;SET cha ...

  8. 文件搜索神器之everything

    之前我提到了,在本地快速的进行文件的检索是平常工作中必要的部分,一个好的搜索软件会大大的提升我们的工作效率.就是它,everything,官方的网站地址是http://www.voidtools.co ...

  9. 剑指offer(7)

    今天的几道题目都是关于斐波那契数列的. 题目1: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 传统的方法采用递归函数,这种 ...

  10. liunx 运维知识一部分

    一   克隆虚拟机 大家都需要做的克隆虚拟机,在克隆虚拟机之前,需要把网卡源的UUID和Mac地址全部删除掉.不然相同会冲突使用不了. 删除UUID跟Mac的操作步骤如下:  cd /etc/sysc ...