request和response中文乱码问题后台处理办法

request接收参数的中文乱码的处理:

GET:

方法一:使用String的构造方法:

new String(request.getParameter("传过来的name").getBytes("ISO-8859-1"), "UTF-8");

方法二:修改tomcat7的默认编码方式,server.xml中端口号那项添加配置:

<Connector connectionTimeout="50000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

POST:

方法一:设置request的缓冲区的编码:

request.setCharacterEncoding("UTF-8");

方法二:使用spring的编码过滤器,在web.xml中添加:

<filter>
    <filter-name>CharacterEncoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

response输出中文的乱码问题:

字符流输出中文:

方法一:

// 设置浏览器字符集编码.
response.setHeader("Content-Type","text/html;charset=UTF-8");
// 设置response的缓冲区的编码.
response.setCharacterEncoding("UTF-8");

方法二:建议使用:

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

字节流输出中文:(实际中不会用)

// 使用字节流的方式输出中文:
ServletOutputStream outputStream = response.getOutputStream();
// 设置浏览器默认打开的时候采用的字符集
response.setHeader("Content-Type", "text/html;charset=UTF-8");
// 设置中文转成字节数组字符集编码
outputStream.write("中文".getBytes("UTF-8"));

说一下,tomcat8开始默认字符集是utf-8

时间: 2024-07-31 14:35:15

request和response中文乱码问题后台处理办法的相关文章

request、response 中文乱码问题与解决方式

request乱码指的是:浏览器向服务器发送的请求参数中包含中文字符,服务器获取到的请求参数的值是乱码: response乱码指的是:服务器向浏览器发送的数据包含中文字符,浏览器中显示的是乱码: 乱码产生的原因:不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的.以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器之间的通信实质上是socket流,所以要先将请求参数(字符)转换成字节,也就是编码过程,服务器接收到请求

get/post时中文乱码问题的解决办法

常有的方法,get请求用在tomcat的编码改为utf-8 即可 post 过滤器就可以 一.常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码: 3.getBytes() 是通过平台默认字符集进行编码: 二.中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置:而在Servlet中

web 前端:连接mysql中文乱码问题的解决办法

当使用tomcat部署servlet连接时,总是出现各种原因的中文乱码问题.有的是因为mysql的默认字符集的问题,有的是客户端的字符配置问题. 现在对于这两种问题进行配置,来解决乱码. 服务器端(mySQL)的字符集配置: show charset://显示支持的所有字符集,大约有40多种: SHOW VARIABLES LIKE 'character_set_%';//查看SQL使用的编码格式: set character_set_client = utf8;//将SQL的一个属性改为utf

jsp和servlet操作mysql中文乱码问题的解决办法

转载:http://www.jb51.net/article/49253.htm 首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明: 1.如果乱码是从jsp页面出现的,jsp头部页面加上:<%@ page language="java" pageEncoding="UTF-8" %>在head标签中加上标签. 2.如果乱码是在servlet中出现的,则有两种方法:一种是在每个servlet中d

Pycharm 输出中文或打印中文乱码现象的解决办法

1. 确保文件开头加上以下代码: 1 # -*- coding:utf-8 -*- 还可以加上 1 import sys 2 reload(sys) 3 sys.setdefaultencoding('utf-8') 确保以下. 如果还是没有解决中文乱码,那么进行方法2. 2. 进入setting 单击打开,单击 修改完成后,结果如下 单击“ok”. 成功.

Linux系统中关于Sqlite3中文乱码问题及解决办法

新做的一个项目在本地(Win8)测试时没有问题,但传到服务器(Linux)时从Sqlite3数据库查询到的数据中文却是乱码(数据库中是正常的) 将php文件.html文件都设置成统一的utf8还是一样,在网络上也找了各种解决方案都没有任何用. 解决办法: 将查询到的数据重新处理,全部强制转换成UTF8 //打开db.db表 $db = new SQLite3('db.db'); if(!$db){ echo $db->lastErrorMsg(); exit; } else { } $keys

servlet response 中文乱码

先,response返回有两种,一种是字节流outputstream,一种是字符流printwrite. 申明:这里为了方便起见,所有输出都统一用UTF-8编码. 先说字节流,要输出“中国",给输出流的必须是转换为utf-8的“中国”,还要告诉浏览器,用utf8来解析数据 //这句话的意思,是让浏览器用utf8来解析返回的数据         response.setHeader("Content-type", "text/html;charset=UTF-8&qu

关于request和response的乱码问题

相信大家在开发Web项目中都会遇到请求乱码和响应乱码的情况,现在给大家梳理一下并提供解决方案. 1.为什么会出现乱码: 出现乱码的根本原因是浏览器和服务器的解码方式不一致引起的.所以我们统一编码方式就可以了. 而浏览器默认的解码方式为UTF-8,所以我们只要将服务器端的编码方式设置为对应的UTF-8就可以了. 2.解决方案  2.1 请求乱码(request) get请求:       (1)找到并打开tomcat目录下的server.xml文件  (2)找到<Connector>标签,在之后

微信小程序 wx.request POST请求------中文乱码问题

问题: 一个简单的表单,提交后台返回数据"提交成功". 以为没问题了,但是没过多久后台小哥就问为啥那么多乱码,找了很久原因,发现在提交的时候就已经乱码了. 嗯,前端问题,然后测试GET/POST方法.GET没有乱码,POST乱码 header这样写的    header: { 'content-type': 'application/x-www-form-urlencoded' } 原因: 如果设置content-type: application/x-www-form-urlenco