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获得的中文信息还是乱码。。。
希望高手帮忙看一下,感谢··· 展开
我是如下写的:
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
Eclipse提示未处理的XXX异常,处理异常后编码未成功改变,输出requets获得的中文信息还是乱码。。。
希望高手帮忙看一下,感谢··· 展开
4个回答
展开全部
如果你是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,你自己看着弄上去
不知道对你有没有帮助,我目前是这么用
例如:
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,你自己看着弄上去
不知道对你有没有帮助,我目前是这么用
展开全部
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"/>
备注:以上字符编码格式根据自己需要设定,只要保持一致即可
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"/>
备注:以上字符编码格式根据自己需要设定,只要保持一致即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实主要是看你传参数是用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;
}
}
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-02-08 · 知道合伙人软件行家
关注
展开全部
1、在Struts.xml配置文件中可以设置国际化的编码格式
2、在jsp页面最开始部分可以设置编码格式
3、如果用myeclipse等编辑器,可以通过设置来指定编码格式
4、如果是对某个变量要进行编码格式操作,可以参考下面:
String str = new String(str.getBytes("ISO-8895-1"),"utf-8");
类型来操作编码格式
2、在jsp页面最开始部分可以设置编码格式
3、如果用myeclipse等编辑器,可以通过设置来指定编码格式
4、如果是对某个变量要进行编码格式操作,可以参考下面:
String str = new String(str.getBytes("ISO-8895-1"),"utf-8");
类型来操作编码格式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询