浏览器正常显示

response.setContentType("text/html;charset='utf-8'")

response.setCharacterEncoding("utf-8");

服务器端正常接收

中文乱码有三种情况

1)表单提交(get方式,post方式):input表单输入为中文

2)超链接(get);链接?参数名=值(中文)

3)sendRedict(get) 链接?参数名=值(中文)

乱码产生的根本原因

请求发送时:浏览器有默认的编码,经上述设置之后,是utf-8。

web服务器接收时候,也有一种编码,由于服务器一般是国外开发的,因此默认的编码方式一般是iso-8859-1

浏览器与服务器的编码方式不一致,因而产生乱码

问题解决方法

1,如果是表单提交,方法是post(表单提交应当尽量选择post)

此时通过http请求体传递参数,因为服务器会将对应的http请求头解析并进一步包装为request对象,因此利用request.setCharacterEncoding方法,指定web服务器接受端的编码方式,如request.setCharacterEncoding("utf-8")

2,如果是表单提交,方法是get

此时通过链接传递参数,针对乱码情况,可以利用

String value=new String(request.getParameter("参数名").getBytes("iso-8859-1"),"utf-8")来解决

这种情况可以封装成一个工具类

package com.bobo.utils;

import java.io.UnsupportedEncodingException;

public class MyTools {

    public static String getNewString(String str){

        try {
return new String(str.getBytes("iso-8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
} }

乱码工具类

3,超链接乱码,sendRedict的乱码本质上也是get请求,解决方法同2

4,如果是ie6及以下版本,上述方法中涉及到get方法时依然有可能出现乱码,此时的解决方法是:

对要发送的中文进行编码

String info=java.net.URLEncoder.encode("你好","utf-8");

response.sendRedict("url路径?参数名="+info);

第三个文件接收

String info=new String(request.getParameter("参数名").getBytes("iso-8859-1"),"utf-8");

补充关于乱码的相关知识点:

一、当我们下载文件的时候,可能提示框是中文乱码,此时的解决方法是:

String temp=java.net.URLEncoding.encode("中文文件名","utf-8")

response.setHeader("Content-Disposition","attachment;filename="+temp);

二、request.getRequestDispatcher()之后出现乱码

对于某一个页面,在单独访问的时候是正常的,可是讲过上述语句转向之后出现乱码

在Servlet中,一般有参数传递的话,会设置页面接收参数和传递参数的编码。即下面两句:

request.setCharacterEncoding("UTF-8");
       response.setCharacterEncoding("utf-8");

一般情况下,大部分都会想到使用这个,但是这两句代码的位置有时却容易被忽视,我今天就是忽视了这两句的位置。正确的写法是,request.setCharacterEncoding("UTF-8");    response.setCharacterEncoding("utf-8");要放在PrintWriter out = response.getWriter();的后面。因为out对象初始化之后,再设置编码已经没有任何意义了!所以必须在out对象初始化之前进行编码的设置。

javaee中的中文乱码处理的更多相关文章

  1. MAC下 mysql不能插入中文和中文乱码的问题总结

    MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...

  2. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

    之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...

  3. zabbix解决监控图中出现中文乱码问题

    首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[root@Z ...

  4. Java Web 开发中的中文乱码与解决方式

    乱码产生的原因 不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的.以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器 ...

  5. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  6. 解决loadrunner 脚本和replaylog中的中文乱码问题

    解决loadrunner 脚本和replaylog中的中文乱码问题 解决这个问题必须认识到一个事实就是,loadrunner和测试服务器交换数据使用的是utf8格式,但是展现在replaylog中是使 ...

  7. 解决URL地址中的中文乱码问题的办法

    解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生 ...

  8. Jsp页面中的中文乱码问题解决

    Jsp页面中的中文乱码问题解决 在编写Jsp页面的时候,发现写入其中的中文在浏览器浏览的时候会出现乱码的情况. 出现乱码的原因分析: 因为页面中对自己的编码格式的声明和页面的实际编码格式不相同,而浏览 ...

  9. jmeter3.0_bodydata中存在中文乱码

    jmeter3.0_bodydata中存在中文乱码 1.进入jmeter.properties配置文件 找到#jsyntaxtextarea.font.family=Hack ,并将“#”取消并重启j ...

随机推荐

  1. IE6 BUG 汇总

    1.IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况.如外边距设置为10px, 而左侧则呈现出20px,解决它的方 ...

  2. NV Maxwell architecture

    按照NVIDIA的路线图来看,GTX 600以及GTX 700系列所采用的Kepler架构已经垂垂老矣,最早在明年第一季度,其继任者Maxwell架构可能就会和我们正式见面了.目前外媒已经放出了关于M ...

  3. oracle 多表查询

    1.注意点 在查询过程中,不确定数据库表中的数据量,先查询数据量,数据量较大,则不能直接查询(select * from emp),如果数据量较大,直接查询容易造成死机或者数据读取较慢,如果较小可以查 ...

  4. 数据库MySql阶段总结

    S1数据库中最重要的是查询,对于查询要有一个好的理解模型是很关键的: 1. 每一个查询都会返回一个结果集,这个结果集可能是一个值,一个字段或者一个记录,甚至可能是一个表 返回一个值 SELECT * ...

  5. Machine Learning in Action -- Logistic regression

    这个系列,重点关注如何实现,至于算法基础,参考Andrew的公开课 相较于线性回归,logistic回归更适合用于分类 因为他使用Sigmoid函数,因为分类的取值是0,1 对于分类,最完美和自然的函 ...

  6. java 强制转换

    在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...

  7. oracle 嵌套表

    --自定义对象 CREATE OR REPLACE TYPE Fas_checksheetinfo_line_obj AS OBJECT(  CSID_ID           VARCHAR2(32 ...

  8. cookie函数

    function getcookie(){ var cookie={}; var all=document.cookie; if(all===""){ alert(2); retu ...

  9. 使用AJAX做关键字查询:输入框变化自动搜索、无刷新页面;

    使用AJAX做关键字查询要求:1.无刷新页面2.输入框变化自动搜索 <style type="text/css"> .k{ width:150px; height:30 ...

  10. bootstrap响应式实用工具