get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法 您所在的位置:网站首页 get请求带中文转码问题 get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法

get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法

2024-07-12 07:07| 来源: 网络整理| 查看: 265

关于使用get请求时候,在传递的参数中有中文字符时候出现乱码问题的原因 1.服务器:服务器按照默认的iso-8859-1进行解码。 A、post方式 post方式属于表单提交,参数存在于请求体中,只需要如下配置即可。 request.setCharacterEncoding("utf-8”) B、get方式 get方式提交的参数会跟在请求行中的uri后边,服务器按照默认的iso-8859-1进行解码;

 

解决的方法(一般选第一种): 1.客户端对参数进行两次EncodeURI.encode操作

原理:

如果只进行一次encodeURI,得到的是UTF-8形式的URL,服务器端通过request.getParameter()解码查询参数(通常是iso-8859-1)就会得到乱码(服务器按照默认的iso-8859-1进行解码)。

进行两次encodeURI,第一次编码得到的是UTF-8形式的URL,第二次编码得到的依然是UTF-8形式的URL,但是在效果上和第一次进行一次UTF-8编码(此时全部转换为ASCII字符,没有多字节字符了),第二次进行一次iso-8859-1编码是一样的.

因为对英文字符来说, UTF-8编码和ISO-8859-1编码的结果相同。在服务器端,

首先通过request.getParameter()自动进行第一次解码(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,对结果无影响)得到Ascii字符,然后再使用UTF-8进行第二次解码,通常使用java.net.URLDecoder.decode("","UTF-8")方法。

2.服务端将解码格式直接配置为utf-8,那么客户端只要进行一次编码就好



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有