解决URL路径、传参乱码
来源:互联网 发布:elementary linux 编辑:程序博客网 时间:2024/06/05 19:58
【解决URL路径编码乱码】
@Test
public void test() throws Exception {
String text = "中国";
// 进行URL编码操作
String encode = URLEncoder.encode(text, "utf-8");
System.out.println("编码后的结果:" + encode);
// 进行URL解码操作
String str = URLDecoder.decode(encode, "utf-8");
System.out.println("解码后的结果:" + str);
}
【参数的乱码问题】
编码操作:
字符串 -->编码
byte[] data = str.getByte("utf-8");
解码操作:
编码 -->字符串
String str = new String(data, "utf-8");
GET方式:
参数是在URL中的(请求行中)。
解决方案一:
// 获取参数,默认是使用iso8859-1进行解码(iso8859-1字符集支持中文吗?不支持)
String name = request.getParameter("name");
// 解决GET方式中文参数的乱码问题,注意:本方法只对GET方式有效
// 第二个参数(编码)应根据情况设置为GBK或UTF-8或其他.
// 具体的是指定浏览器传参数时所用的编码,就是浏览显示的网页所用的编码。
// (网页显示的是什么编码,那么传参数就用什么编码)
name = new String(name.getBytes("iso8859-1"), "utf-8");
解决方案二:
// 在conf/server.xml中配置request.getParameter()的默认使用的编码为正确的编码
<Connector
connectionTimeout="20000" port="8080"
protocol="HTTP/1.1" redirectPort="8443"
URIEncoding="utf-8"
/>
POST方式:
参数是在请求的实体内容中。
解决方案:
// 设置请求的实体内容编码(默认是iso8859-1)
// 这样POST方式提交的参数中的中文就不会有乱码了
// 注意1:此方案只对POST方式的参数乱码问题有效!
// 注意2:此代码一定要放到所有的getParameter()调用之前才有效
request.setCharacterEncoding("utf-8");
具体代码:
package itcast.test; import java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; public class MyParServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); byte[] bytes = name.getBytes("iso8859-1"); name = new String(bytes, "utf-8"); String sex = request.getParameter("sex"); sex = new String(sex.getBytes("iso8859-1"),"utf-8"); System.out.println("name="+name+" sex="+sex); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); String sex = request.getParameter("sex"); System.out.println("name="+name+" sex="+sex); } }
- 解决URL路径、传参乱码
- 解决android获取URL中文路径乱码
- 解决URl中文路径乱码问题
- 解决URL传参乱码问题
- 关于url传参乱码的解决
- 解决URL传参乱码问题
- 解决中文乱码问题 (url传参乱码)
- 解决路径传参的乱码问题
- 解决ASP.NET中URL传参乱码问题
- 解决java中url传参中文乱码问题
- javascript解决url传参中文乱码问题
- 解决jsp中获取url传参中文乱码问题
- 解决IE下URL传参中文乱码的问题
- url 若带中文。传参乱码 解决
- 解决url中文传参乱码问题
- URL传参数解决中文乱码问题
- url解决中文乱码
- URL中文乱码解决
- python学习(二)
- 项目启动那些事儿
- 模数非互质的同余方程组(非互质版中国剩余定理)
- 黑马程序员--Java基础加强--07.【反射创建对象 操作字段 调用方法的异同】【个人总结】
- 6174问题
- 解决URL路径、传参乱码
- utf文件BOM头处理类
- 记录自己犯的错误。
- IOS抓包 Charles 的调试
- 学习新技术的10个建议
- 85 Operations Rules to Live By
- poj 2586 Y2K Accounting Bug
- Android滚动显示TXT中文文本
- 使用BCP导出导入数据