个人看法:
你的意思是不是把strName存入数据库中显示???,是的话就是由于你没有对存入的字符进行转换,转换代码如下:
public String to_String( String str) {
try
{
String temp_p = str;
byte [] temp_t = temp_p.getBytes("ISO-8859-1");
String temp = new String(temp_t);
return temp;
}
catch (Exception e)
{
return str;
}
}
如果只是显示的问题,那么就是要用charset=GB2312在网页中标明字符集。
你的意思是不是把strName存入数据库中显示???,是的话就是由于你没有对存入的字符进行转换,转换代码如下:
public String to_String( String str) {
try
{
String temp_p = str;
byte [] temp_t = temp_p.getBytes("ISO-8859-1");
String temp = new String(temp_t);
return temp;
}
catch (Exception e)
{
return str;
}
}
如果只是显示的问题,那么就是要用charset=GB2312在网页中标明字符集。
解决方案 »
- struts2.1 的例子 showbook.jsp 报的错
- 请教<c:forEach>标签访问set集合的问题.(在线等)!
- struts2如何验证引入的s:action内容
- session的问题
- csdn论坛左边的显示导航栏是怎么作的
- jbuilderX 如何整合 Tomcat5!!??????
- 单引号乱码
- 哪位有将客户端请求request中的单引号转化为两个单引号的过滤器?即javax.servlet.Filter
- (急)为何我的结果集一用last()或absolute()方法,系统提示java.sql.SQLException: 操作不允许: Unsupported syntax for refreshRow()。
- 有什么著名的软件是用JAVA编的?
- 请给个例子关于文件下载重新命名的写法(Content-Disposition)
- JSP通过post调用Servlet,Servlet端如何得到调用它的jsp文件的名字或者其调用者的URL?
tl.getGBK()就是字符转换的方法
一、Include的页面乱码 现象:include进来的页面出现乱码,其它页面正常。 原因:Tomcat在缺省情况下使用ISO-8859-1编码,但是在include时有时Tomcat不能正确根据外层.jsp文件的编码解析include进来的文件,造成include进来的文件中的中文乱码。 解决:这儿可以有很多解决办法,但是对于我们的中文环境,从根本上的解决办法是将Tomcat5.0.19的核心缺省编码从ISO-8859-1修改为GBK。可以在下面地址下载修改过的jar文件, jasper-compiler.jar,jasper-runtime.jar位于/common/lib下,其它位于/server/lib下,将新的.jar文件替代原.jar即可。
二、提交的数据乱码 现象:通过表单提交的数据出现乱码。 原因:原因未明。可能是Tomcat在接收到请求后,并没有能够根据request中的信息提前正确的编码方式。 解决:可以添加一个设置字符集的Filter。packagefilters;importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.UnavailableException;publicclassSetCharacterEncodingFilterimplementsFilter{
protectedStringencoding=null;
protectedFilterConfigfilterConfig=null;
protectedbooleanignore=true; publicvoiddestroy(){
this.encoding=null;
this.filterConfig=null;
}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)
throwsIOException,ServletException{ //Conditionallyselectandsetthecharacterencodingtobeused
if(ignore||(request.getCharacterEncoding()==null)){
Stringencoding=selectEncoding(request);
if(encoding!=null)
request.setCharacterEncoding(encoding);
} //Passcontrolontothenextfilter
chain.doFilter(request,response);}publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
Stringvalue=filterConfig.getInitParameter("ignore");
if(value==null)
this.ignore=true;
elseif(value.equalsIgnoreCase("true"))
this.ignore=true;
elseif(value.equalsIgnoreCase("yes"))
this.ignore=true;
else
this.ignore=false;}protectedStringselectEncoding(ServletRequestrequest){
return(this.encoding);
}} 配置web.xml<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter><filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>