文档章节

request.getParameter(“参数名”) 中文乱码解决方法

 起步的蜗牛
发布于 2016/04/17 12:11
字数 478
阅读 16
收藏 1

Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢)

今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法

解决问题,先要研究问题,URL传中文参数为什么会出现乱码?

原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

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

这是通过转码的方式处理乱码问题,我们也可以通过Tomcat配置文件,设置URL编码集(URIEncoding)设置编码,这种方法也是一劳永逸的,

修改Tomcat/conf 目录下 server.xml

 <Connector port="8080" protocol="HTTP/1.1" 
     connectionTimeout="20000" 
     redirectPort="8444" 
     useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

重点在 userBodyEncodingForURI 和 URIEncoding 这两个属性

下面来解释一下这两个属性的意义

useBodyEncodingForURI参数表示是否用request.setCharacterEncoding参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false。

URIEncoding参数指定对所有GET方式请求进行统一的重新编码(解码)的编码。

URIEncoding和useBodyEncodingForURI区别是,

URIEncoding是对所有GET方式的请求的数据进行统一的重新编码,

而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码


本文转载自:https://wuzhuti.cn/1129.html

共有 人打赏支持
粉丝 1
博文 5
码字总数 200
作品 0
南通
使用request.getParameter(“参数名”)取网页中输入值的中文乱码解决方法

在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明Java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request.getParame...

zwtestsky
2016/11/25
0
0
WEB项目中的中文乱码问题

目录: 一、Request中文乱码 二、tomcat 中文乱码 一、Request中文乱码 解决request中文乱码的问题 request.setCharacterEncoding(charset);必须写在第一次使用request.getParameter ()之前,...

peter8015
2016/03/15
43
0
url 发送请求乱码解决。

来源:http://blog.csdn.net/shiqidide/article/details/6987449 最近遇到的这个问题,在百度找到的 发出来!作者地址是上面的网站 最近又碰到了中文乱码问题,这里我没有把数据库牵扯进来,...

机会到了可是你准备好了吗
2015/11/05
2.1K
1
jquery的ajax()函数传值中文乱码解决方法介绍

jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({  dataType : ‘json',type : ‘POST',url :‘http://localhost/test/test.do',data : {id: 1, typ...

mdoo
2015/10/07
217
1
jsp、servlet中文乱码终极解决方法

jsp中文乱码终极解决方法 一 找出问题的根源 乱码可能出现的地方:1 jsp页面中 2 jsp页面之间相互传参的参数 3 与数据库中数据的存取 基本归纳为以上几种。 二 寻找解决方案 1 出现在jsp页面...

长平狐
2012/11/12
332
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
28分钟前
0
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {pr...

芬野de博客
昨天
2
0
MySQL autocommit探究

-- sessionA:tx_isolation=REPEATABLE-READmysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 28 |+-----------------+......

安小乐
昨天
7
0
c++多线程锁 Mutex  自动判断死锁

c++多线程锁可以使用absl::Mutex std::mutex这两种,下面是demo代码。 使用absl:Mutex的时候打印: [mutex.cc : 1338] RAW: Cycle: [mutex.cc : 1352] RAW: mutex@0x683b68 stack: @ 0x43856......

青黑
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部