iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中请求乱码解决方法
  • 618
分享到

java中请求乱码解决方法

java 2020-03-30 20:03:09 618人浏览 猪猪侠
摘要

出现的问题:通过get请求向服务器发送请求时,如果请求参数为中文时,服务器端接受到的参数为乱码。乱码原因分析及解决办法:关于解码和编码编码:'中'→1110001解码:1110001→'中'乱码:编码和解码过程中使用了不同的字符集WEB应用

出现的问题:

通过get请求向服务器发送请求时,如果请求参数为中文时,服务器端接受到的参数为乱码。

乱码原因分析及解决办法:

关于解码和编码

编码:'中'→1110001

解码:1110001→'中'

乱码:编码和解码过程中使用了不同的字符集

WEB应用中字符编码解码的问题

(1)请求过程:

<1>GET请求

浏览器端是以UTF-8进行编码,所以在服务器端也应该以UTF-8进行解码

由于GET请求参数附着在URL地址后面,所以要统一的URL地址的解码字符集。

解决办法:

Tomcat配置文件server.xml中找到第一个connector加入如下属性 URIEncoding=UTF-8

<2>POST请求

在获取请求参数前执行:request.setCharacterEncoding("UTF-8");

(2)响应过程

(1)指定响应数据的编码字符集

(2)告诉浏览器响应数据应该使用什么字符集进行解码

<1>Tomcat服务器会自动根据“解码字符集”设置“编码字符集”

<2>设置编码字符集:告诉浏览器当前响应数据的内容类型:response.setContentType("text/html;charset=UTF-8");需要注意的是,需要在response.getWriter();之前设置,否则无效。

建议:

所有的过滤器都只对POST请求起作用,在jsp页面中设置字符编码方式,都只是对表单提交时的POST请求起作用,对GET请求不能起到设置其字符编码的作用,

在GET请求中使用的是默认的编码方式,所以对GET请求,需要在server.xml文件中设置URIEncoding="UTF-8"然后重启TOMCAT便可以实现解决中文乱码问题,

但是不建议在href超链接请求中传达中文参数,也不建议在GET请求中传递中文参数。

另外对传递的部分中文实现传递和接收时的统一的编码方法在传达参数时使用

"reply.jsp?title="+java.net.URLEncoder.encode(keyWords)

然后在接收参数页面使用keywords=new String(request.getParameter("keywords").getBytes("8859_1"));这种方式虽然暂时解决了中文乱码问题,

但是在后期的维护和部署到其他的服务器时可以仍会会出现中文乱码了问题,所以不建议使用。

对于Post请求,只需在Servlet或者jsp中写入如下代码就可以把解决从表单中传入的中文乱码问题

 request.setCharacterEncoding("utf-8");

了解:

而对于Get请求,因为请求参数会被附加到地址栏的URL之后,所以不能用上面的处理方法。应该这样:

   String str=request.getQueryString();
   //使用URLDecoder解码字符串
   String str1=java.net.URLDecoder.decode(str,"utf-8");
   String[] paraStrings=str1.split("&");
    //paraStrings[0]就是第一个参数,依次类推...
   for(String paraString : paraStrings)
   {
         String[] nameValue=paraString.split("=");
         //nameValue[0]就是表单的name,nameValue[1]就是表单name对应的值
   }

还有一种方法就是获取请求参数之后对请求参数值重新编码,也就是先将其转换成字节数组,再将字节数组重新解码成字符串。

  String str=request.getParameter("name");
  byte[] bytes=str.getBytes("ISO-8859-1");
  String name=new String(bytes,"utf-8");

结论:传递中文参数时,最好使用POST请求来提交。不同服务器设置编码方式可能不同,不同操作系统设置编码方式也可能不同。

推荐:Java基础教程

--结束END--

本文标题: java中请求乱码解决方法

本文链接: https://www.lsjlt.com/news/1697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中HTTP请求中文出现乱码如何解决
    Android中HTTP请求中文出现乱码如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android中HTTP请求中文乱码解决办法 编码参数List<N...
    99+
    2023-05-30
    android http
  • 解决Netty解码http请求获取URL乱码问题
    目录Netty解码http请求获取URL乱码解决方案原因Netty---编解码(原理) 1.ByteToMessageDecoder2.FixedLengthFrameDe...
    99+
    2024-04-02
  • node.js解决客户端请求数据里面中文乱码的事件方法
    node.js解决客户端请求数据里面中文乱码的事件 例如代码: var http = require('http'); var server = http.createServe...
    99+
    2024-04-02
  • Ajax请求中传输中文乱码问题怎么解决
    本篇内容主要讲解“Ajax请求中传输中文乱码问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax请求中传输中文乱码问题怎么解决”吧!今天遇到一个问...
    99+
    2024-04-02
  • MFC Java 使用socket 中文乱码解决方法
    在 MFC 中使用 Java 的 Socket 进行通信时,中文乱码问题可能出现在两个方面:发送端和接收端。下面给出解决方法:发送端...
    99+
    2023-10-12
    MFC
  • STRUTS+AJAX+JSP 请求到后台乱码问题解决方法是怎样的
    本篇文章为大家展示了STRUTS+AJAX+JSP 请求到后台乱码问题解决方法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 ...
    99+
    2024-04-02
  • oracle中文乱码解决方法
    oracle 中文乱码通常由字符集错误引起。解决步骤如下:检查数据库字符集,应为 utf8。修改字符集为 utf8。检查客户端字符集,应与数据库一致。验证字符集已更改。重新加载数据,指定...
    99+
    2024-05-11
    oracle
  • html中乱码的解决方法
    这篇文章将为大家详细讲解有关html中乱码的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html乱码的解决办法:1、定义网页显示编码,代码如“<meta http-equiv="...
    99+
    2023-06-15
  • java使用readLine() 乱码的解决方法
    这期内容当中小编将会给大家带来有关java使用readLine() 乱码的解决方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用readLine() 乱码的解决本人在公司开发程序遇到了读取 ...
    99+
    2023-06-22
  • 解决Tomcat修改get提交请求乱码问题
    1:表单提交controller获得中文参数后乱码解决方案注意: jsp页面编码设置为UTF-8***************form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 <%@ page lan...
    99+
    2023-05-31
    tomcat get 乱码
  • PHP json_encode中文乱码解决方法
    相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题。JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题。JSO...
    99+
    2024-04-02
  • html中title乱码的解决方法
    小编给大家分享一下html中title乱码的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!html title乱码的解决办法:1、在head之前添加“<meta http-equiv=Content-Type...
    99+
    2023-06-15
  • JFreeChart中文乱码的解决方法
    今天就跟大家聊聊有关JFreeChart中文乱码的解决方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。由于JFreeChart组件的版本、操作平台、JDK的设置等因素,在使用JFr...
    99+
    2023-06-17
  • linux中mint乱码的解决方法
    这篇文章给大家分享的是有关linux中mint乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。linux mint乱码的解决办法:1、安装“Dconf-editor”;2、启动Dconf系统配置编辑器...
    99+
    2023-06-25
  • php中foreach乱码的解决方法
    本文将为大家详细介绍“php中foreach乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php中foreach乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下...
    99+
    2023-06-06
  • eclipse中html乱码的解决方法
    小编给大家分享一下eclipse中html乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!eclipse html乱码的解决办法:首先找到并打开【pr...
    99+
    2023-06-15
  • html中post乱码的解决方法
    这篇文章主要介绍html中post乱码的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html post乱码的解决办法:首先打开相应的代码文件;然后将post传递过来的ISO编码内容,改成UTF-8格式的内容...
    99+
    2023-06-15
  • JSP中文乱码的解决方法
    本篇内容主要讲解“JSP中文乱码的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JSP中文乱码的解决方法”吧!对于中文处理的常见对策,在网上经常可见的主要是下面2种: <%@ page ...
    99+
    2023-06-03
  • css中文乱码的解决方法
    小编给大家分享一下css中文乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css的基本语法是什么css的基本语法是:1、css规则由选择器和一条或多...
    99+
    2023-06-14
  • php中htmlentities乱码的解决方法
    小编给大家分享一下php中htmlentities乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php htmlentities乱码的解决办法:1、...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作