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();
	    }
}


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

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

request.getReader()乱码问题

import java.io.BufferedReader; import java.io.IOException; import javax.servlet.http.HttpServletRequ...
  • u010081710
  • u010081710
  • 2016年04月19日 15:38
  • 1913

javaweb实现自动将前端的属性值(HttpServletRequest)转化为后台对应的实体类

通常我们在后台需要获取前端的属性值的时候用到的是request.getParameter("xxx"); 下面的方法将实现自动将HttpServletRequest中的值封装到实体类中,需要一定的Ja...
  • bq1073100909
  • bq1073100909
  • 2015年10月29日 18:19
  • 3707

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

原因:   url中有些字符被转义,比如空格被编码成加号,于是传的参数明明是加号,获取的值却成了空格。如何解决呢?如果是通过url传递参数,应该对其进行必要的编码。表单数据概述如果你曾经使用过Web搜...
  • Aragorn_177
  • Aragorn_177
  • 2008年07月04日 23:04
  • 10305

Servlet(11)HttpServletResponse、HttpServletRequest详解及中文乱码处理

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即代表请求和响应。我们要...
  • u013943420
  • u013943420
  • 2017年04月12日 20:15
  • 1004

20160324servlet学习笔记HttpServletRequest对象中文乱码解决方法

1.可以通过sendRedirect方法向将要跳转的页面传递信息,具体方法如下 sendRedirect("servletUrl?username=user1&password=123")这里的ser...
  • u010752082
  • u010752082
  • 2016年03月24日 21:50
  • 1522

Java Web后台从request里面获取的数据是乱码问题

问题是这样的:前台页面发送请求,提交的是中文数据,但是在后台获取的时候就变成乱码了。最后也以乱码的形式存入数据库了。后台代码如下:import org.springframework.web.bind...
  • meijory
  • meijory
  • 2016年12月26日 14:28
  • 7225

Servlet从上一个页面获取参数(中文乱码解决方法)

import java.io.*;import javax.servlet.ServletException;import javax.servlet.http.*;public class Thre...
  • oThomasyang
  • oThomasyang
  • 2013年10月23日 19:06
  • 4624

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

修改文本格式,编码格式大家都懂得。 需要注意的是response在getWritter之前设定setContentType才能使PrintWriter正确。 类似的我遇到一个问题,文本格式,编码格...
  • mtawaken
  • mtawaken
  • 2012年03月30日 21:10
  • 5977

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

本篇博客主要讲述HttpServletResponse、HttpServletRequest这两个对象API总结,response报文中主要包含了状态码、头信息、响应体、302重定向、refresh自...
  • zhongkelee
  • zhongkelee
  • 2016年08月30日 16:09
  • 1387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:servlet乱码解决一则&将request参数按字符串取出
举报原因:
原因补充:

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