`

中文显示的三种方法

    博客分类:
  • java
阅读更多
方法一:最简单也是用的最多的方法

  <%@ 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方法在处理编码时是一样的。



分享到:
评论

相关推荐

    OpenCV两种方法显示中文

    OpenCV两种方法显示中文(一种配置CvxText和FreeType库,一种不需要配置库),默认环境VS2012+OpenCV249。

    VTK中一种显示汉字的方法

    这种方法不仅解决了VTK中原生不支持汉字显示的问题,还为VTK在国内的应用开辟了更广阔的空间。随着更多应用场景的需求,相信未来VTK将会不断完善自身,提供更多本地化支持,以满足不同地区用户的特定需求。

    (06)Arduino显示汉字_Arduino显示汉字_columniwe_

    在Arduino的世界里,扩展其显示功能,特别是在汉字显示方面,是一项常见的需求。本文将深入探讨如何利用Arduino控制各种显示屏来实现汉字的显示,这在物联网、智能家居或创意小项目中非常实用。标题“(06)Arduino...

    一种VTK如何显示汉字的新方法

    压缩包中的“VTK中一种显示汉字的方法.pdf”很可能详细介绍了其中一种或多种方法的实现步骤和代码示例。通常,这样的文档会涵盖以下内容: - 如何设置VTK的字体渲染参数,确保支持中文字符。 - 如何加载和应用支持...

    Symbian中显示中文汉字(3种方法).

    ### Symbian中显示中文汉字(3...通过以上介绍的三种方法,开发者可以根据自己的实际需求选择最合适的方式来实现Symbian中中文汉字的显示。每种方法都有其特点和适用场景,理解这些技术细节有助于更好地进行应用开发。

    易语言显示桌面三种方法源码.7z

    这个“易语言显示桌面三种方法源码.7z”压缩包文件中包含的是使用易语言实现显示桌面功能的三种不同方法的源代码。下面将详细介绍这三种方法。 1. API调用法: 易语言支持调用Windows操作系统提供的API(应用程序...

    tekla输入汉字显示问号解决办法

    在Tekla Structures这款著名的三维钢结构建模软件中,有时用户会遇到输入汉字显示为问号的问题,这无疑会给中文用户的操作带来极大的困扰。经过一系列的探索和尝试,问题的根源并非版本差异,而是语言设置冲突导致的...

    ucgui显示汉字的方法

    ### UCGUI显示汉字的方法详解 #### 一、UCGUI简介 UCGUI(User Control Graphical User Interface)是一款开源的嵌入式图形用户界面库,主要用于嵌入式系统的图形界面开发。UCGUI支持多种硬件平台,并能够适应不同...

    STC单片机+ST7735 1.8寸TFT屏的中文显示

    4. **中文字符编码**:在显示中文字符时,需要处理GB2312或UTF-8等汉字编码,将编码转换为点阵图形,再发送给ST7735。这可能涉及到字库的创建和管理,或者使用现成的汉字库。 5. **图形绘制**:ST7735支持基本的点...

    DOS显示汉字的各种方法 源码

    在这个标题为“DOS显示汉字的各种方法 源码”的资料中,我们可以推测这是一份关于在DOS环境下实现汉字显示的编程源代码集合。 描述中的“各种方法”暗示了这些源代码可能包含了多种不同的技术来在DOS下显示汉字。在...

    在ABB示教器上显示中文的方法.pdf

    为了在ABB示教器上显示中文,可以采用一种将文本信息存储在文本文件中,并通过RAPID代码读取这些文本内容,最后以弹窗形式展示给用户的方法。 首先需要明确的是,在实施中文显示之前,要确保文本文件的内容编码格式...

    STM32 TFT屏汉字显示例程

    STM32 TFT屏汉字显示例程是嵌入式开发中一个常见的应用场景,主要涉及图形用户界面(GUI)的实现,汉字、字符以及图片的显示,以及硬件设备的连线方法。在这一例程中,我们将深入探讨这些关键知识点。 首先,STM32...

    设置 DatePicker 中文显示

    - 这个函数可能包括处理四位数字的年份、两位数字的月份和日期,并确保符合中文的习惯,如“二零二三年二月二十八日”。 3. **用户界面本地化**: - 除了日期格式外,日期选择器的按钮文本(如“确定”、“取消”...

    Windows平台下VTK中文字符显示.

    本文将详细介绍一种在Windows平台上实现VTK中文字符显示的方法。 #### 关键技术与实现 为了使VTK能够在Windows平台上显示中文字符,作者开发了三个自定义类:`vtkFTGLChineseCharacterMapper`、`...

    Ireport中文不显示以及乱码十几种解决方案

    以上就是针对IReport中文不显示及乱码问题的十几种解决方案,每种情况都有其特定的解决办法。在尝试时,请根据自己的具体情况进行操作,相信总有一种方法能帮你解决问题。如果问题依然存在,建议查阅IReport的官方...

    LCD1602显示中文

    #### 三、LCD1602显示中文的具体实现 在给定的代码示例中,主要实现了通过C语言控制LCD1602显示数字和简单的字符,但并没有直接显示中文。为了实现显示中文,需要进一步处理。以下是一些关键点: 1. **初始化LCD...

    opencv C++显示中文

    为了在OpenCV C++中显示中文,我们可以利用OpenCV的`Text`模块,该模块提供了一种自定义字体渲染的方法。关键在于找到一个包含中文字符的TrueType字体文件,并将其加载到OpenCV中。通常,操作系统已经安装了一些支持...

    用opencv显示图片,并在图片中显示汉字

    但无论选择哪种方法,关键在于找到一个能支持所需字符集的字体,并将其正确地应用到图像处理中。 总的来说,虽然OpenCV原生不支持显示汉字,但通过与其他库的配合,我们可以克服这个限制,实现显示汉字的功能。这...

    汇编语言汉字显示程序

    在本案例中,"汇编语言汉字显示程序"是一个专门用于在计算机屏幕上显示汉字的程序,对于学习和理解汇编语言以及底层字符处理机制具有重要意义。 首先,我们要知道,在早期的计算机系统中,由于硬件限制,显示汉字是...

    易语言显示桌面三种方法源码

    本文将深入探讨易语言显示桌面的三种方法,并通过源码解析,帮助你更好地理解和应用这些技术。 方法一:使用系统API函数 易语言可以通过调用Windows API函数来实现显示桌面的功能。其中,最常用的是`Shell_TrayWnd`...

Global site tag (gtag.js) - Google Analytics