当前位置:  编程技术>java/j2ee

解决JSP开发中Web程序显示中文三种方法

    来源: 互联网  发布时间:2014-10-17

    本文导语:  方法一:最简单也是用的最多的方法   <%@ page language="java" pageEncoding="GBK" %>   或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。   这个方法用于jsp页面中的中文显示。...

方法一:最简单也是用的最多的方法
  <%@ page language="java" pageEncoding="GBK" %>
  或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。
  这个方法用于jsp页面中的中文显示。
  方法二:使用过滤器
  过滤器使用主要针对表单提交,插入数据库的数据都是?号。这也是应为tomcat不按request所指定的编码进行编码,还是自作主张的采用默认编码方式iso-8859-1编码。
  编写一个SetCharacterEncodingFilter类。
  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 SetCharacterEncodingFilter implements Filter {
   protected String encoding = null;
   protected FilterConfig filterConfig = null;
   protected boolean ignore = true;
   public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig=filterConfig;
    this.encoding=filterConfig.getInitParameter("encoding");
    String value=filterConfig.getInitParameter("ignore");
    if(value==null)
     this.ignore=true;
    else if(value.equalsIgnoreCase("true"))
     this.ignore=true;
    else
     this.ignore=false;
   }
   public void doFilter(
  ServletRequest request, ServletResponse response, FilterChain chain)
   throws IOException, ServletException {
   // TODO 自动生成方法存根
   if (ignore    (request.getCharacterEncoding() == null)) {
    String encoding = selectEncoding(request);
    if (encoding != null)
     request.setCharacterEncoding(encoding);
   }
   chain.doFilter(request, response);
  }
  public void destroy() {
   // TODO 自动生成方法存根
   this.encoding = null;
   this.filterConfig = null;
  }
  protected String selectEncoding(ServletRequest request) {
   return (this.encoding);
  }
  }
然后再web.xml加上
  <!-- Set Character Encoding-->
  <filter>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>com.struts.common.SetCharacterEncodingFilter</filter-class>
   <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
   </init-param>
  </filter>
  <filter-mapping>
   <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping>
  <!-- Set Character Encoding-->
  使用过滤器的好处很多,特别是项目之中。
  而且在使用国际化时就更有用了,只要在页面指定 <%@ page language="java" pageEncoding="UTF-8" %>,服务器就会根据本地Locale来显示正确的字符集。
  所以我特别推荐使用过滤器。
  方法三:修改tomcat的server.xml文件中URIEncoding
  <Connector debug="0" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
  port="80" redirectPort="8443" enableLookups="false" minSpareThreads="25" maxSpareThreads="75"
  maxThreads="150" maxPostSize="0" URIEncoding="GBK" >
  </Connector>
  这个方法主要针对从url中获取字符串的问题。
  在tomcat5.0及以上版本,post和get方法在处理编码时有所不同。如果你在url中获取中文就会出现?号。但在tomcat4.1版本没有问题,因为tomcat4.1的post和get方法在处理编码时是一样的。

    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 我的rh linux 8 不支持中文,中文显示乱码,该安装什么?或怎么解决?
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!
  • Get中文乱码IE浏览器Get中文乱码解决方案
  • 请问各位,我装了Mandrake Linux 10.1版,选的简体中文,可是进去后菜单的中文都是方格,怎么解决啊?
  • 问题3:如何解决linux hat 9.0 shell下中文乱码问题?如何输入中文?
  • zip包在中文centos上解压后, 其中如果有中文文件名则为乱码, 怎么解决??
  • 请问:Linux不能显示U盘中中文文件名,但能显示中文的内容?怎么解决?
  • 我在Red Hat9下装netbeans中文装,可是在安装时和安装后界面中的中文一直是□形状,要怎么解决。
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!!!
  • turbolinux10中原来是英文操作系统,现在想变成支持中文,请问有什么好方法,如果能通过增加中文包来解决,请提供一点详细的资料。
  • 我安装redhat linux9.0,选择简体中文,为什么在命令行模式下的中文显示为乱码呢,如何解决?
  • php网页标题中文乱码如何解决
  • Java国际化时怎么不能正确读取.properties文件中的中文字符串,如何解决其中的中文问题?
  • !!!!我的redhat9.01是简体中文版的,但文件名和xpdf不能显示中文. 请问如何解决?
  • 如何解决weblogic的中文问题
  • Solaris Sparc 9 中文乱码解决?
  • 为什么RH9不能显示中文,怎么解决?????
  • Android Studio的中文乱码问题解决方法
  • 安装Redhat选者简体中文,执行Xconfigurator,屏幕上看到乱码,如何解决?
  • 大家好.我的OPEN OFFICE 不能显示中文,应该如何解决呀?
  • windows server2008上PowerBuilder程序系统错误解决方法
  • IIS未找到提供程序该程序可能未正确安装错误解决办法
  • c/c++服务器程序内存泄露问题分析及解决
  • 手动执行应用程序ok,但用crontab(在正确的用户名下)运行应用程序就报-12545(tns连接错误),怎么解决?
  • 从定时从A程序调用B程序(B程序运行一下就退出)多次后,出现僵尸进程?如何解决?
  • IIS7.5 http 1.1 新建应用程序失败的解决方法
  • linux FC5下用程序生成的文件中,中文变成问号,怎么解决?
  • 求程序移植乱码解决方案
  • 请教:用jbuilder7编写程序时,光标显示不正确,请问怎样解决?
  • 怎么解决linux下禁用屏幕保护程序和去掉节省电源的功能????
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!
  • andriod中UIScrollView无法正常滚动的解决方法
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 求数据库解决方案===求数据库解决方案
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • MYSQL安装时解决要输入current root password的解决方法
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 解决oracle用户连接失败的解决方法
  • 安装hadoop时出现内存不够及其它一些常见的hadoop错误解决办法
  • 呵呵,前段时间Ubuntu服务器版的问题总算解决了,解决方法就是重新安装桌面版-_-!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3