servlet乱码解决一则&将request参数按字符串取出

原创 2012年03月30日 21:10:02

修改文本格式,编码格式大家都懂得。

需要注意的是response在getWritter之前设定setContentType才能使PrintWriter正确。

类似的我遇到一个问题,文本格式,编码格式都统一为GBK了,使用request.getParameter(“”)是可以得到正确的中文的,但是如果使用request.getReader(),将所有参数转化成字符串(我为了接收整个json来转化用的),字符串中得中文就是乱码的。于是我想依照刚才的样子request.setCharsetEncoding("GBK")。还是乱码。

后来看到好多java库默认是用utf8操作字符串的,就想是不是BufferReader用的字符不一样,于是request.setCharsetEncoding("utf8");,ok了。

我将所有的文本格式编码格式都改成utf8,中文依然ok的。


然后另一个问题就是存到mysql中,我用cmd一看,还是乱码。。修改了my.ini里面default-character-set=utf8,还是不行,修改了client字符编码还是不行,不过读取过来在servlet里倒是正确的中文。应该是只要连接数据库的时候设定好是以什么编码访问(jdbc:mysql://localhost:3306/kiln?characterEncoding=utf8),那读取就是一致的,结果就没有乱码问题。至于cmd中为什么显示不出来,还是不知道。


附将request参数按字符串取出代码

public class JSONManager {
	 public static String readJSONString(HttpServletRequest request){
		 	try {
				request.setCharacterEncoding("utf8");				
			} catch (UnsupportedEncodingException e1) {				
				e1.printStackTrace();
			}
	        StringBuffer json = new StringBuffer();
	        String line = null;
	        try {
	            BufferedReader reader = request.getReader();	            
	            while((line = reader.readLine()) != null) {
	                json.append(line);	                
	            }	            
	        }
	        catch(Exception e) {
	            System.out.println(e.toString());
	        }
	        return json.toString();
	    }
}


相关文章推荐

HttpServletRequest对象内容及解决乱码

javaweb学习总结(十)——HttpServletRequest对象(一) 一、HttpServletRequest介绍   HttpServletRequest对象代表客户端的请求,当客户端...

JavaEE实战——HttpServletResponse、HttpServletRequest、中文乱码

本篇博客主要讲述HttpServletResponse、HttpServletRequest这两个对象API总结,response报文中主要包含了状态码、头信息、响应体、302重定向、refresh自...

request.getParameter("变量名")获取的字符串中原来的加号变成了空格,url传值

         今天我在调程序时,遇到了见郁闷的事,我用ajax从前台显示页面传字符串变量给处理页面,出现了件怪事,我想传的内容是abc+,但接收以后用System.out.println()输出是...

servlet中response和request的字符编码问题

javaweb中的中文乱码问题。

[Servlet]HttpServletRequest的请求参数、标头、编码

1. HttpServletRequest的主要作用:     1) 前面我们已经非常熟悉了,就是在服务器收到请求后创建该对象并将有关请求的所有信息都分解保存在HttpServlet的各个字段中供Se...

request.getInputStream()读取post传递的xml文件问题

最近有个项目下需要接收POST过来的XML数据包,在servlet方法中,调用request.getInputStream() 发现无法读到任何数据。   以下是POST数据的程序代码: Java代...
  • shimiso
  • shimiso
  • 2010年10月20日 16:33
  • 18848

jsp,ajax,json,servlet前后台传值中文乱码解决方法

JSON前后台传递值,研究了一段时间,下面给出重点代码,主要是解决乱码问题 一、后台向前台传递值 Servlet        /* 设置格式为text/json    */       ...

Java如何从HttpServletRequest中读取HTTP请求的body

注意:下面方法已验证通过。 HTTP请求中的是字符串数据: //字符串读取 void charReader(HttpServletRequest request) { BufferedRead...
  • zxygww
  • zxygww
  • 2015年07月24日 18:31
  • 34321

servlet request请求对象常用方法总结

1. request请求对象常用方法: public void doPost(HttpServletRequest request, HttpServletResponse response)  ...

HttpServletRequest详解

y
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:servlet乱码解决一则&将request参数按字符串取出
举报原因:
原因补充:

(最多只允许输入30个字)