为什么我在Servlet中第1名就用语句request.setCharacterEncoding("utf-8");设置了request的编码,但紧接着打印前台传过来的中方还是乱码呢? 页面上为<meta http-equiv="Content-Type" content="text/html; charset=utf-8">现在面临的问题是前台传来的中文中执行的SQL中是乱码,导致查询无结果。
解决方案 »
- struts2中如何用标签计算两个时间的差,例如还余下多少天!
- 关于spring Transactional注解的问题
- 基于Tomcat服务的java.lang.OutOfMemoryError: Java heap space异常?求助高手..
- 字符转换问题
- import 的问题,大家快来看看,谢谢了
- LocalSessionFactoryBean的dataSource属性为什么能是 ProxyFactoryBean
- Picoconntainer的几个问题
- (给100分!)Weblogic配置JDBC联接缓冲池总是出问题
- 如何学习hibernate,请高人指教
- 哪位做过j2ee项目,页面可以承受2000并发用户的访问,高分相送
- SAXException
- 求助
http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
http://seagar-collection.javaeye.com/blog/297149
如果是且用的是get方式可以在页面
var url = "attachment.do?method=rename&ATCH_NAME=" + encodeURI(encodeURI(inputtext));
在servlet中则是
response.setContentType("text/html;charset=utf-8");
String nodeNameBefore = request.getParameter("ATCH_NAME");
String nodeName = URLDecoder.decode(nodeNameBefore, "utf-8");不过建议用post方式,两都省了。
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
前台页面上点击按钮后,请求Servlet,条件中有中文,而且中文内容要作为SQL语句中的条件。在过滤器或servlet中通过request.setCharacterEncoding设置成gbk,utf-8,gb2312都试过,没有解决问题。在servlet中调用ss打印还是乱码,但是String ss = new String(s.getBytes("GBK"),"UTF-8");可以打印出中文来(tomcat的server.xml中没有配URIEcoding)。可是这对我来说不能解决问题,调用的接口获取参数的方法是传request进去。我requst.setAttribute("ss",ss)那边获取后还是乱码
还有一个问题是我提交请求过来时的那个HTML页面上,charset只能设置成utf-8,否则页面报错,(页面内容都是通过JS组件画出来的。)
PS:上面是一句经典废话,直接忽略就行,说起来容易做起来难。
1、你的数据可以使用form提交,隐含的form什么的都行。2、如果你的是通过URL传递中文的话,给你个简单的转码传递。var url = "savePhoneMessage.do?inci='"+inci+"'&phone='"+encodeURI(encodeURI(phone))+"'&from_person='"+encodeURI(encodeURI(from_person))+"'&to_person='"+encodeURI(encodeURI(to_person))+"'";//注意:是用两次“encodeURI”
后台:String from_person = java.net.URLDecoder.decode(request.getParameter("from_person"),"utf-8");//进行转码操作
String to_person = java.net.URLDecoder.decode(request.getParameter("to_person"),"utf-8");//进行转码操作
页面只能用UTF-8,页面内容是用JS组件画出来的。不用UTF-8的话页面就报错了,。页面,SERVLET,tomcat配置都用UTF-8是试过了。可是太让我伤心了。乱码还是挥之不去 :(
不知道为什么,另外一个功能也是调用的这个servlet,用上面的方法转码后可以取到中文了。当前这个页面提交过来的中文非得String ss = new String(s.getBytes("GBK"),"UTF-8");才能取到中文。HTML页面上charset=utf-8