表单提交servlet的两种解决乱码方式
2016-03-10 22:35
393 查看
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*下面的是request乱码问题*/ String uname= (String) req.getParameter("uname"); String pw=(String) req.getParameter("pw"); uname=new String(uname.getBytes("iso-8859-1"),"utf-8"); System.out.println(uname+" "+pw); /*下面的代码是response的乱码问题*/ resp.setContentType("text/html;charset=UTF-8");//目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码; resp.setCharacterEncoding("UTF-8");/*的目的是用于response.getWriter()输出的字符流的乱码问题 ,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据 以UTF-8解码后发向浏览器; */ ServletOutputStream out=resp.getOutputStream(); //out.print(uname);//这样遇到中文还会报错!! out.write(uname.getBytes("UTF-8")); /*PrintWriter out2=resp.getWriter(); out2.print(uname+"2"); */ //PrintWriter与ServletOutputStream只能二选其一,否则会报错,用PrintWriter更好 } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*下面的是request乱码问题*/ req.setCharacterEncoding("utf-8"); String uname= (String) req.getParameter("uname"); String pw=(String) req.getParameter("pw"); System.out.println(uname+" "+pw); /*下面的代码是response的乱码问题*/ resp.setContentType("text/html;charset=UTF-8");//目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码; resp.setCharacterEncoding("UTF-8");/*的目的是用于response.getWriter()输出的字符流的乱码问题 ,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据 以UTF-8解码后发向浏览器; */ PrintWriter out=resp.getWriter(); out.print(uname); }
相关文章推荐
- 猜拳游戏案例
- #include<>和#include“” 区别
- iOS的socket开发基础
- KL26---GPIO 复用
- 链表-Reverse Linked List II
- 第四十八天
- 1078. Hashing (25)
- RxJava学习历程
- 编程学习第六天,参数传递
- 海量数据处理常用的方法
- 关于IplImage中widthstep的大小与width,nchannels等的关系的问题_widthstep
- 个人对于css sprite的一点点见解
- Leetcode015 3Sum
- lambda语句与匿名函数
- BZOJ 1260: [CQOI2007]涂色paint 区间DP
- 关于printf输出格式类型的总结
- CentOS6.5安装NVIDIA的显卡驱动
- Redhat下 Boost库1.54编译安装
- 阻塞,非阻塞connect()和accept()
- COCOS学习笔记--Menu菜单系统