本人是java新手,刚开始学习java框架,在学习和使用的过程中,最头疼的一件事情就是乱码问题,有时候从数据读出数据在页面显示乱码,有时,从页面提交数据,才数据库显示乱码,因此把个人解决乱码的方法和大家分享下,希望能帮助和我一样的出学着,希望他们不要被乱码困扰.
对于数据库数值在页面显示乱码问题,比较简单,把页面编码写成utf-8或者gbk格式就可以拉,下面我主要介绍下页面提交后数据库乱码问题的解决.
1.你可以写一个字符编码的类来进行编码转换:
如.
private static String changeEncoding(String input, String sourceEncoding, String targetEncoding)
{ if (input == null || input.equals(""))
{
return input;
}
try
{
byte[] bytes = input.getBytes(sourceEncoding);
return new String(bytes, targetEncoding);
} catch (Exception ex) { }
return input;
}
下面是调用
String cont=request.getParameter("cont");
cont = changeEncoding(cont, "ISO8859-1", "utf-8");
2.需要转换时直接调用函数转换.
如:
String username=new String((userform.getUsername()).getBytes("ISO-8859-1"),"UTF-8")
3.通过上面的两个方法,可以解决编码问题,大家可以看出来,这样的话就增加了不少代码和重复了好多操作,很不方面,所以我我们可以用一个filter,在web.xml里面添加一次,到出可用.
代码类如下:
package com.struts.commons;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter
{
public void destroy()
{
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
throws IOException, ServletException
{
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0)
throws ServletException
{
// TODO Auto-generated method stub
}
}
在web.xml中加上这样的代码
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.struts.commons.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就完全可以解决乱码问题了.
分享到:
相关推荐
乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决
Ajax中文乱码问题解决方案
qt乱码问题解决
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
struts中文乱码问题解决详细步骤(两种方法)
PHP网页的编码; PHP与Mysql的数据交互; PHP与操作系统相关等几个方面的乱码解决方法
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
struts 中文乱码问题解决
解决MySQL数据库乱码问题,以及命令行查表乱码问题
字符集的设置不当是影响ORACLE数据库汉字显示...本文从实践经验出发,介绍了ORACLE关于字符集的分类、构成及设定方法,分析了ORACLE数据库汉字显示乱码的常见现象及原因,并针对各种现象及原因提出了行之有效的解决办法
解决JAVA编程中遇到的各种乱码问题,对乱码问题的分析
DB2数据库控制中心乱码问题解决方法集合 在英文操作系统上,经常会出现DB2数据库控制中心乱码现象。 第1种方法: 把D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\font.properties.zh中的filename.SimSun=SimSun...
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
MySql乱码问题解决方法MySql乱码问题解决方法
utf8解决JSP中文乱码问题 Tomcat 5.5中文乱码 JDBC ODBC Bridge的Bug及其解决方法 Solaris下Servlet编程的中文问题及解决办法
中文乱码问题解决&&乱码问题解决&&中文乱码问题解决&&乱码问题解决
比较全面的jsp乱码解决方法~~~ 详细叙述的乱码的产生原因~~
串口通信中文乱码问题解决
MySQL中文乱码问题解决方案,彻底解决mysql中的中文乱码问题
java编程中乱码问题解决方案,解决一些常见的java开发环境中的乱码问题