缘由:
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");
这是经由过程转码的体式格局处置惩罚乱码问题。
在线进修视频教程分享: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传中文参数涌现乱码的细致内容,更多请关注ki4网别的相干文章!