精华内容
下载资源
问答
  • 最近一次开发过程中遇到一个关于前端js传递中文参数到Java接收乱码的问题。怎么解决呢?相信网上已经有了各种各样的答案,这次我主要记录一下问题的解决思路。 思考方向 现象 编辑文本信息保存到数据库,本地环境和...

    前言

    最近一次开发过程中遇到一个关于前端js传递中文参数到Java接收乱码的问题。怎么解决呢?相信网上已经有了各种各样的答案,这次我主要记录一下问题的解决思路。

    思考方向

    • 现象
      编辑文本信息保存到数据库,本地环境和开发环境均正常,测试环境数据库对应属性值乱码。
    • 定位
      环境问题;
      检查测试环境mysql的字符规则设置,指定UTF-8,正常;
      打印入参日志,参数值乱码,检测测试环境服务器的字符规则设置,指定en_US.UTF-8,正常;
      检查tomcat字符设置,server.xml文件未指定URIEncoding="utf-8"的编码集,异常;
      tomcat不设置编码时,默认是iso8859-1,即tomcat默认会以iso8859-1编码接收get参数
    • 方案
      修改tomcat配置文件conf/server.xml中
      在这里插入图片描述
      重启tomcat即可。

    问题延伸

    在Spring框架中我们设置了request.setCharacterEncoding(), 指定后可以通过request.getParameter()则直接获得正确的字符串,如果不指定,则默认使用iso8859-1编码。值得注意的是在执行setCharacterEncoding()之前,不能执行任何getParameter()。而且,该指定只对POST方法有效,对GET方法无效。那么GET方法的话,需要在Tomcat的server.xml配置编码规则,如下:

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

    如果没人在server.xml中进行字符设置的话,那就需求前端对中文参数进行编码,调用js方法encodeURI(url),将url编码,然后再进行GET请求,后台接受时,需处理接收到的入参,将默认编码iso8859-1转换成UTF-8

    String str = new String(request.getParameter("param").getBytes("iso8859-1"),"UTF-8");
    

    另外在其他博主那边又看到这样一种方式,前端针对URL中的所传中文参数进行两次encodeURI转换

    encodeURI(encodeURI(keyword))
    

    encodeURI函数采用utf-8进行编码,而在服务器的进行解码时候,默认都不是以uft-8进行解码,所以就会出现乱码。

    两次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("",“UTF-8”)方法。
    在这里插入图片描述
    两次编码两次解码的过程为:
    UTF-8编码->UTF-8(iso-8859-1)编码->iso-8859-1解码->UTF-8解码,编码和解码的过程是对称的,所以不会出现乱码。
    以上这三种方式都是解决GET方式中文传参乱码问题。

    展开全文
  • java接收中文乱码问题

    2020-07-10 15:30:15
    场景 : 开发微信机器人智能对话,传回的意图(中文)后台接收乱码,导致无法识别. 原因 : url传到tomcat服务器,默认ISO-8859-1来解码,未设置UTF-8则导致乱码 解决 : 代码层面 String queryStr = URLDecoder.decode(...

    场景 : 开发微信机器人智能对话,传回的意图(中文)后台接收乱码,导致无法识别(post请求不用转).

    原因 : url传到tomcat服务器,默认ISO-8859-1来解码,未设置UTF-8则导致乱码

    解决 : 代码层面

    String queryStr = URLDecoder.decode((new String(query.getBytes("ISO8859-1"), "UTF-8")), "UTF-8");
    

    关于tomcat设置或者拦截器等其他方法待总结,项目环境个人不建议改吧!

     

    展开全文
  • java接收参数乱码

    千次阅读 2018-11-19 09:10:59
    前台传过来的参数显示乱码,页面默认编码格式是ISO-8859-1,可能乱码,可通过转化编码格式解决乱码问题 String remark =remark = new String(request.getParameter("remark").getBytes("ISO-8859-1&...

    前台传过来的参数显示乱码,页面默认编码格式是ISO-8859-1,可能乱码,可通过转化编码格式解决乱码问题

    String remark =remark = new String(request.getParameter("remark").getBytes("ISO-8859-1"), "utf-8"); 

    展开全文
  • 解决java HttpURLConnection接收https请求乱码问题 如果是中文乱码,可以设置读取时使用: [yourreader] = new BufferedReader(new InputStreamReader(is, "UTF-8")); 如果全乱码,可以尝试设置http请求头: ...

    解决java HttpURLConnection接收https请求乱码问题

    如果是中文乱码,可以设置读取时使用:

    [yourreader] = new BufferedReader(new InputStreamReader([yourcon].getInputStream(),
     "UTF-8"));
    

    如果全乱码,可以尝试设置http请求头:

    [yourcon].setRequestProperty("Content-Type",
    "application/x-www-form-urlencoded;charset=UTF-8");
    

    我的情况是使用代理调试时不乱码,不使用代理运行时就乱码,使用这个属性就好了。

    展开全文
  • 这里主要是的介绍的是,在配置过 过滤器后还是不行的方法 我遇到的问题就是 自己eclipse上运行不会乱,部署到 tomcat服务器上后就出现问题了~~ *直接上代码~~~~* //在seever.xml中 找到这句 加上 URIEncoding="...
  • //get import requests as ...data = {"name":u"中文","text":"乱码"}; url = 'http://1.1.1.1/post' res = requests.get(url,params = data) print res.text //post import requests as requests; d
  • JAVA 接收中文参数,乱码问题

    千次阅读 2019-07-22 15:22:07
    后台接收中文参数时,可能会乱码,以下方法可以转码: String cabins = URLDecoder.decode((new String(cabin.getBytes("ISO8859-1"), "UTF-8")), "UTF-8");
  • 方案一:简单 <Connector connectionTimeout="20000" port=... tomcat加上utf8就行 方案二:点对点修改 String parts = URLDecoder.decode(map.get("parts").toString(), "UTF-8"); ...只能一对一,批量会很大工作
  • python http post调用java 但是java乱码 怎么破,在线等 python http post调用java 但是java乱码 怎么破,在线等 python http post调用java 但是java乱码 怎么破,在线等 python http post调用java 但是java中...
  • java中文乱码解决问题

    2015-04-15 11:26:41
    java中文乱码解决问题
  • java servlet 接收中文乱码

    千次阅读 2014-10-02 14:35:08
    private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException { // Put your code here this.filterConfig=filterConfig; } public void doFilter(ServletR
  • 最近接收第三方发送的UDP数据包,通过wirshark抓包后使用其原始数据(16进制),在自己写的UDPclient/server测试成功,在生产环境中,出现了接收数据乱码的问题。 基于Spring Boot2.1.5.RELEASE,jdk 1.8开发 相关...
  • 中文乱码java中URLEncoder.encode方法要调用两次解决   http://blog.csdn.net/kongqz/article/details/9028111   里面说,因为在jsp中对中文进行编码的时候用的是UTF-8的编码方式,而在servlet中调用...
  • 这么接收键盘输入中文,在控制台输出的是乱码。 看了很多方法 包括把整个myeclipse的编码改成了GBK 在scanner输入后 进行编码转换 都没管用 最后看了篇文章找到了解决我这个问题的方法 runa...
  • 解决java中文乱码全集

    2008-12-16 09:36:35
    解决所有JAVA所出现的乱码问题 1.String fullname=new String(request.getParameter("fullname").getBytes("ISO8859_1"),"gb2312"); 这是对于直接用参数传到下个页面上的java接收
  • Java socket接收出现中文乱码

    千次阅读 2014-05-18 14:45:03
    今天写Tcp,发现中文乱码的问题,百度了一下,发现这篇文章,开头两句话就解决了我的问题,读完受益匪浅啊,呵呵,收藏先。 尊重版权:原文地址:...
  • 问题原因:从前端获取参数出现了乱码,通过debug可以看到xmmc为乱码状态。 解决办法使用编码解决 直接上代码  前端 使用encodeURICompomnent进行编码 var xmmc = $('#s_xmmc').val(); xmmc=...
  • java中文乱码

    千次阅读 2011-12-26 16:55:00
    java中文乱码 中文问题  我是个好人 三个地方的编码。 第一个地方的编码格式为jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件 ...
  • tcp rpc 实现的,但是我在接收对方大参数时候 对方传过来一个 中文字符串已经变成乱码,我使用了多种方法对 乱码进行重新编码,不过怎么弄都不行, description 就是接收的字符串,通过debug发现已经是乱码,...
  • JAVA中文乱码解决

    2014-03-06 21:23:06
    乱码JAVA开发时经常遇到的问题。主要出现在四种情况: 1. 系统接口之间 2. POST提交数据 3. GET提交数据和URL路径 4. 页面乱码 系统接口之间乱码 需要双方定义编码方式。例如:GBK(以下都...
  •  在web.xml加入filter过滤,注意,只能解决浏览器端发送post请求,controller接收中文乱码的情况。 &lt;!-- POST字符编码过滤 --&gt; &lt;filter&gt; &lt;description&gt;字符集过滤器...
  • java web 乱码 问题

    2013-08-09 09:30:58
    相信web站点乱码问题都曾使我们困惑加郁闷不少,在此我积累了几点解决方案,用于解决不同情况下的乱码问题,希望能对各位有些许提示作用。 首先应确定不是因为浏览器的原因导致中文乱码。 本人在刚用firefox时...
  • 在通过HttpClient或URL方式请求数据的过程中,难免会出现乱码的问题,笔者在项目开发过程中就遇到了此问题,在网上找了一堆资料,都是在接收端解决问题,忽略了发送端的编码问题,所以在接收端所有办法都用了还是...
  • java中文乱码 .

    千次阅读 2012-08-31 11:03:19
    java中文乱码 中文问题  我是个好人 三个地方的编码。 第一个地方的编码格式为jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,054
精华内容 14,821
关键字:

java接收乱码

java 订阅