(1)第一种方法,直接使用getBytes()函数
package Bean;
public class TranStrType
{
public static String ToISO(String str) throws Exception
{
try
{
if(str==null)
{
return null;
}
else
{
str = new String(str.getBytes("gb2312"),"ISO8859_1");
return str;
}
}
catch(Exception e)
{
return null;
}
}
public static String ToGB(String str) throws Exception
{
try
{
if(str==null)
{
return null;
}
else
{
str = new String(str.getBytes("ISO8859_1"),"gb2312");
return str;
}
}
catch(Exception e)
{
return null;
}
}
}
(2)另外,“Servlet API 2.3 提供一个新的函数HttpServeletRequest.setCharacterEncoding ”我试过,挺好用的,tomcat4.0.1。
方法是配置一个filter,对request进行过滤处理,过滤器如下:
[code]
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;
import javax.servlet.UnavailableException;
/**
* Title: 中文问题
* Description: 中文问题
* Copyright: Copyright (c) 2002 writeonce
* Company:
* @author writeonce
* @version 1.0
*/
public class EncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// Select and set (if needed) the character encoding to be used
String encoding = selectEncoding(request);
if (encoding != null)
{
request.setCharacterEncoding(encoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
同时,在web.xml中加入如下配置:
[code]
[/code]