SSH2整合出现中文乱码:form提交的中文数据传到了action显乱码

问题描述

哎,被中文乱码高的晕头转向。在网上搜索的各种方法都用过,form提交的中文数据到action方法里都还是现实中文乱码。 1在Tomcat里面的server.xml把编码改成了UTF-8。 2在项目的属性的Resource里把Test file encoding改为UTF-8。 3手动编写过过滤器。 4使用过自带的编码过滤器(org.springframework.web.filter.CharacterEncodingFilter)。 5在JSP页面里加上了<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page contentType="text/html;charset=UTF-8" %> 6action的方法中有进行过转码:String nameUTF8=new String(admin.getName().getBytes("ISO8859-1"), "UTF-8")或者String nameUTF8=URLDecoder.decode(admin.getName(),"utf-8"),控制台打印的还是乱码。用第一个转码打印的乱码是“????”,而第二个打印的是“閭撶悊閿?”。 7在struts.xml里也加上了<constant name="struts.i18n.encoding" value="UTF-8"/> 在赶毕业设计,被中文乱码耽搁了进程,抑郁不能解。希望好心人士的解答。谢谢 问题补充:ethen 写道

解决方案

经鉴定“閭撶悊閿?”是GBK被转化成往utf-8的结果,用new String("閭撶悊閿?".getBytes("GBK"),"UTF-8")可以将部分数据转化回来“邓理??”,但由于utf-8一个汉字占三个字节GBK则是两个字节。怀疑你的filter里用了GBK编码。一般在web.xml配的,如果你用是MyEclipse可用ctrl+h检索一下,文件类型那用*.* 看看哪里这是了GBK或者GB2312了
解决方案二:
我曾经遇到过楼主说的情况,后来就是通过把文件的编码格式都转换成utf-8 后来解决了,实在没辙了我觉得一楼推荐的文章很值得看看,在这只能祈祷楼主了。
解决方案三:
lz,不妨尝试一下,把你的开发工具,比如我的吧,是myeclipse8.0,里面所有的文本包括jsp,js的编码格式均转为utf-8,你的问题我以前也遇到过,就是这样做的 ....嘿嘿 希望你用的到
解决方案四:
如果真是像楼主说的那样 所有的方法都试了 无济于事那么楼主不妨试试将项目中的文件拷贝出来 做一下文件编码转化 然后再复制到项目里面去具体操作在下面:http://www.cnblogs.com/eflylab/archive/2008/07/08/1238550.html祝你好运。
解决方案五:
把头改成 试一试<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib uri="/struts-tags" prefix="s"%>
解决方案六:
get和post的处理方式是不同的。
解决方案七:
呵呵 我说让你打印没转码的 看是什么编码
解决方案八:
把你的admin.getName()打印一下粘出来看看是什么样。
解决方案九:
显然你没看完这篇
解决方案十:
你可以看下,应该可以解决http://ethen.iteye.com/blog/797775hope it helpful to you!

时间: 2024-07-31 12:07:20

SSH2整合出现中文乱码:form提交的中文数据传到了action显乱码的相关文章

java中form以post、get方式提交数据中文乱码问题总结_java

  一:form在前台以post方式提交数据:     浏览器将数据(假设为"中国")发送给服务器的时候,将数据变成0101的二进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开网页,浏览器就以哪个码表提交数据.数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串("中国"),方法内部拿到数字后要转成字符,一定要查码表,由于request的设计者是外国人,所以默认

ext中form提交的数据中文数据乱码

问题描述 ext中form提交的数据中文数据乱码.我有一个程序,如果是添加信息中含有中文就不会乱码,如果是修改信息中含有中文就是乱码.这是怎么回事 解决方案 解决方案二:前台页面用utf-8,后台弄个过滤器也用utf-8就不会有问题了

get提交中文乱码-在jsp页面上表单提交(用get方法)为什么提交的中文在url中是以编码的形式出现的呢?

问题描述 在jsp页面上表单提交(用get方法)为什么提交的中文在url中是以编码的形式出现的呢? 用form表单提交http://localhost:8080/BookShop/BookServlet?bookname=%E7%BB%9F%E4%B8%80&author=%E5%8F%91&booknum=89&price=7但如果用a href超连接来提交http://localhost:8080/BookShop/BookServlet?bookname=编程思想&a

http-c++ post提交数据中文乱码

问题描述 c++ post提交数据中文乱码 vc6.0 mfc 客户端用post提交中文数据,在web服务端接收是乱码,初步分析是编码问题,如果将中文转换成utf-8发送,则服务端能正常接收中文. 测试时我是借用的浏览器将中文转换成utf-8的,然后用转换后的字符串直接提换中文. 比如: 一:PostHttpPage("0.citygo.duapp.com","orderfrom_new","clientName=中文"); 二:PostHttp

ssh2整合事务提交问题?

问题描述 我再ssh2整合的时候,将hibernate的配置文件交给spring管理,在spring中没写事务,做了一个简单的添加,为什么数据库中会有数据?而将hibernate的配置文件单独管理,则添加的时候数据库没有数据,请问这是为什么? 解决方案 貌似我以前遇到过这个问题.根据我的印象貌似好像是因为,1.hibernate的配置文件交给spring管理,数据源由spring来创建,事务默认是提交的.2.如果单独把数据源配置写在hibernate的配置文件中事务貌似不会自动提交,你试一下在h

javaweb-html里form体检的中文如何从二进制恢复成中文

问题描述 html里form体检的中文如何从二进制恢复成中文 我自己用seversocket写了个服务端,想把html里的form体交内容提交到服务端,但是接受到的数据好像是二进制格式的,我用字节数组bytes接收,然后用了new String(bytes,0,bytes.length)想把它恢复成普通的字符串,但是为何里面的中文体检信息成了%B2%E3%D5之类的,我该如何把它恢复 解决方案 解码吧,好像有个decodeURIC....的函数我忘记怎么写了,你百度看看吧,不知道对不对,只有点印

java中文乱码之解决URL中文乱码问题的方法_java

我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不同的操作系统.不同的浏览器.不同的网页字符集,将导致完全不同的编码结果.如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求? 有!这里我主要提供以下几种方法 一.javascript使用javascript编码不给浏览器插手的机会,编码之后

上传-jQuery ajax form提交在IE8下不执行回调函数

问题描述 jQuery ajax form提交在IE8下不执行回调函数 // 上传文件function myUploadExcel(obj) {var options = { url : ""${ctx}/ins/pro/upLoadTempFile.do?filename=""+obj.value dataType : ""text"" beforeSubmit : function(formDatajqFormoption

ajax与隐藏form提交的利与弊

 本篇文章主要是对AJAX提交与FORM提交的区别进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 现在来对比一下ajax与隐藏form提交的利与弊.   1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理:ajax则不用,可以直接返回原页面进行提交后的处理.可见ajax可以比隐藏form提交少增加一个页面.   2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是