来自 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. 聊聊我是如何自学Java两年的(上)

    没啥经验,说说心路历程吧~~ 过两天就9月1号了,正式成为大三生,没错,我就是如此嫩~~~ 萌芽在初中 初一的时候,电视广告结尾都会放一句,我们的网站是.....于是心里琢磨,网站是怎么建的呢?我可以 ...

  2. Java的并发及锁

    Java并发编程:用AQS写一把可重入锁 https://blog.csdn.net/zhang5476499/article/details/83796289 线程的同步时可以使一个线程阻塞而等待一 ...

  3. Python监控服务器利器--psutil

    Python监控服务器利器--psutil 服务器的监控通过安装一些常用的监控软件之外,有时也需要运行一些shell或Python脚本:shell下可以使用系统自带的ps/free/top/df等sh ...

  4. 海康威视笔试(C++)

    1. select和epoll的区别 2.服务器并发量之高性能服务器设计 3.SQL关键字 4.TCP乱序和重传的问题 5.c++对象内存分配问题 6.c++多线程 join的用法: Thread类的 ...

  5. Python_每日习题_0004_一年中的第几天

    # 题目 输入某年某月某日,判断这一天是这一年的第几天? # 程序分析 特殊情况,闰年时需考虑二月多加一天: def isLeapYear(y): return (y%400==0 or (y%4== ...

  6. 学习WebSocket

    初识WebSocket: index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  7. PAT L3-007 天梯地图

    https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792 本题要求你实现一个天梯赛专属在线地图,队员输 ...

  8. XManager&XShell如何保存登录用户和登录密码

    Xshell配置ssh免密码登录 - qingfeng2556的博客 - CSDN博客https://blog.csdn.net/wuhenzhangxing/article/details/7948 ...

  9. css横线中间放图片或者文字

    效果图: 先贴代码 HTML: <div class="forshow middle"> <div class="flex"></ ...

  10. vue传参

    <template> <ul> <li v-for="item in list" :key="item.id"> <b ...