javaee中的中文乱码处理
浏览器正常显示
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中的中文乱码处理的更多相关文章
- MAC下 mysql不能插入中文和中文乱码的问题总结
MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题
之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...
- zabbix解决监控图中出现中文乱码问题
首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[root@Z ...
- Java Web 开发中的中文乱码与解决方式
乱码产生的原因 不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的.以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器 ...
- jquery.ajax的url中传递中文乱码问题的解决方法
jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...
- 解决loadrunner 脚本和replaylog中的中文乱码问题
解决loadrunner 脚本和replaylog中的中文乱码问题 解决这个问题必须认识到一个事实就是,loadrunner和测试服务器交换数据使用的是utf8格式,但是展现在replaylog中是使 ...
- 解决URL地址中的中文乱码问题的办法
解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生 ...
- Jsp页面中的中文乱码问题解决
Jsp页面中的中文乱码问题解决 在编写Jsp页面的时候,发现写入其中的中文在浏览器浏览的时候会出现乱码的情况. 出现乱码的原因分析: 因为页面中对自己的编码格式的声明和页面的实际编码格式不相同,而浏览 ...
- jmeter3.0_bodydata中存在中文乱码
jmeter3.0_bodydata中存在中文乱码 1.进入jmeter.properties配置文件 找到#jsyntaxtextarea.font.family=Hack ,并将“#”取消并重启j ...
随机推荐
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- [IT学习]PowerBi 入门
从哪里开始呢?注册一个账号,从PowerBi的help开始就行了.Get Started会带领你从get data讲起,建立dataset,建立report,一直到dashboard创建. 下面这个链 ...
- Nginx 笔记与总结(9)rewrite 重写规则
重写的规则可以放在 serverer 里,也可以放在 location 里. rewrite 规则: 常用的命令有 ① if(条件){} 设定条件,再进行重写 if 语法: if 空格 (条件){ ...
- ThinkPHP中Xheditor编辑器报错
在使用Xheditor这个插件时..我按照他里面的domo中的方法放到自己的控制器中..出现如下问题 以下是我节选的错误提示 /index.php/admin/goods/upload/ 上传接口发生 ...
- 匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)
一.匈牙利命名法 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) ...
- Git 忽略一些文件不加入版本控制
在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法.这个文件每一行保存了一个匹配的规则例如: # 此为注释 – 将被 Git 忽略 *.a ...
- max_allowed_packet
http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_in SELECT val1 FROM tbl1 W ...
- JAVA中的throws和throw的区别
Java 一直对java中的throws和throw不太理解.最近一直在查这两个方面的资料,算是能明白一点吧.如果我下面的观点哪有不对,希望指出来,我加以改进. throw:( ...
- Ubuntu/Deepin下常用软件汇总(持续更新)
最近开始用Ubuntu了,好多软件都不是常用的了,在这边留底,以免忘记.如果没有写安装方法,则直接在软件源中可以找到 UNetbootin U盘制作工具,制作Ubuntu的安装U盘超好用 Braser ...
- jquery autocomplete插件结合ajax使用
<%@ page isELIgnored="false"%> <%@ page contentType="text/html; charset=UTF- ...