一个关于乱码的问题,找的很久都没有有效的解决

mgslovedreamsgogo 2006-01-16 03:50:13
用STRUSTS,在一个文本筐中输入一个汉字,但是发现在action中这个汉字是乱码,这样就不能操作数据库了,麻烦帮忙解决!!
谢谢
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhang801 2006-01-17
  • 打赏
  • 举报
回复
String temp1 = new String(temp.getBytes("ISO-8859-1"), "GB2312");
zgf19821202 2006-01-16
  • 打赏
  • 举报
回复
jcnll(我是鱼)和 miaomiao_0316(苗苗)的办法都可以
acd123456 2006-01-16
  • 打赏
  • 举报
回复
String s = new String( oldStr.getBytes("ISO-8859-1"), "GBK");
miaomiao_0316 2006-01-16
  • 打赏
  • 举报
回复
可以设置一个过滤类,如下:
package com.comment;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class CharacterEncodingFilter implements Filter
{
protected FilterConfig filterConfig = null;
protected String encoding = "";

public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");

}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
if(encoding != null)
servletRequest.setCharacterEncoding(encoding);
filterChain.doFilter(servletRequest, servletResponse);
}

public void destroy()
{
filterConfig = null;
encoding = null;
}


}


修改web.xml文件
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.comment.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

然后把这个类放在WEB-INF/classes/下就可以了
寄居蟹 2006-01-16
  • 打赏
  • 举报
回复

String str=new String(para.getBytes("8859_1"),"gb2312");
你用这句试下看

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧