struts+spring+hibernate 中action如何设置编码格式?

struts+spring+hibernate中action如何设置编码格式?我是如下写的:request.setCharacterEncoding("GBK");res... struts+spring+hibernate 中action如何设置编码格式?

我是如下写的:
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");

Eclipse提示未处理的XXX异常,处理异常后编码未成功改变,输出requets获得的中文信息还是乱码。。。

希望高手帮忙看一下,感谢···
展开
 我来答
anglin1217
推荐于2018-03-14 · TA获得超过152个赞
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
如果你是struts1,可以用过滤器Filter
例如:
public class EncodingFilter implements Filter {

private FilterConfig filterConfig=null;

public void destroy() {
this.filterConfig=null;
}

public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(this.filterConfig.getInitParameter("encoding"));
response.setCharacterEncoding(this.filterConfig.getInitParameter("encoding"));
chain.doFilter(request, response);
}

public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}

}
下面是在web.xml的设置:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.emp.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
这里我用和你一样的GBK

如果你用的是struts2:
那只要在他的配置文件struts.xml里面写:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 中文编码处理 -->
<constant name="struts.i18n.encoding" value="GBK"></constant>

<!-- 以下配置我省略了 -->
。。。。。。。

</struts>
这里我也是用GBK,你自己看着弄上去
不知道对你有没有帮助,我目前是这么用
51CTO学院
2015-11-18 · 中国最大的IT实战在线培训平台
51CTO学院
中国最大的IT实战在线教育培训平台。
向TA提问
展开全部
struts+spring+hibernate设置action中的编码首先从jsp入手,保证页面的编码是GBK,然后再按照以下步骤设置即可。
1、如果是post 方法提交 则加入以下代码:
request.setCharacterEncoding("GBK");//注意首先保证编码一至,jsp页面用什么编码在此就用什么编码(GBK/GB2312等),此代码只对post提交方式有效
response.setContentType("text/xml;charset=GBK")是设置页面中为中文编码
备注:以上两行代码必须放在PrintWriterout=response.getWriter(); 之前
2、get 方法提交
如变量name用String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK");
问题2:解决get方式提交乱码问题:
修改tomcat server.xml 文件,加上红色部分代码
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>

备注:以上字符编码格式根据自己需要设定,只要保持一致即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
only__java
2009-10-15 · 超过20用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
其实主要是看你传参数是用dopost()Ordoget(),dopost()的话,就按你的方法应该是可以解决的,但是你说你还是得到的是乱码的话,我想你用的是doGet()方法,doGet()的话,三种解决方法,第一:就是像楼上说的写过滤器,第二是改服务器的编码如tomcat只要改service.xml文件就可以了,第三;专门写个类强制改,但是这个方法必须预先知道服务器的默认编码如:private static final String inCode = "ISO-8859-1";
private static final String outCode = "utf-8";
/**
* 转换字符串编码ISO-8859-1为utf-8
* <div>到数据库时用readString(String inputString)</div>
* @param inputString 输入字符串
* @return 转换后的字符串
*/
public static String readString(String inputString){
try {
byte[] tempByte = inputString.getBytes(inCode);
inputString = new String(tempByte,outCode);
}
catch (UnsupportedEncodingException ex) {
throw new RuntimeException("Unsupported encoding type.");
}finally{
return inputString;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cansluck
推荐于2016-02-08 · 知道合伙人软件行家
Cansluck
知道合伙人软件行家
采纳数:502 获赞数:1407
毕业于湖南农业大学计算机科学与技术专业,学士学位。从事java开发4年,读过大量的java开发的书籍

向TA提问 私信TA
展开全部
1、在Struts.xml配置文件中可以设置国际化的编码格式
2、在jsp页面最开始部分可以设置编码格式
3、如果用myeclipse等编辑器,可以通过设置来指定编码格式
4、如果是对某个变量要进行编码格式操作,可以参考下面:
String str = new String(str.getBytes("ISO-8895-1"),"utf-8");
类型来操作编码格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式