美文网首页
java中url传中文参数出现乱码

java中url传中文参数出现乱码

作者: 小人物不说大话 | 来源:发表于2020-03-12 17:46 被阅读0次

    java中url传中文参数出现乱码

    原因:

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

    方法一:

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

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

    这是通过转码的方式处理乱码问题。

    在线学习视频教程分享:java视频教程

    方法二:

    我们也可以通过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参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码。

    相关文章教程推荐:java入门教程

    相关文章

      网友评论

          本文标题:java中url传中文参数出现乱码

          本文链接:https://www.haomeiwen.com/subject/ebsvjhtx.html