`
键盘寄生物
  • 浏览: 23883 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

一些JAVA中文的转码问题

阅读更多

对JAVA中文过滤的问题:

    原来很长一段时间被JAVA的中文乱码所困扰,不过在多次实践后总算找到了较好解决方法,
首先在页面里的 “charset” 设置上统一用 “GB2312”或“GBK” ,不过我推荐最好使用GBK,对中文支持比较好,
然后是增加过滤器。
   源码示例:
 SetCharacterEncodcingFilter.java
 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 {
    public void destroy() {
    }
    /**
     * Select and set (if specified) the character encoding to be used to
     * interpret request parameters for this request.
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {

        request.setCharacterEncoding("GBK");
   
        // 传递控制到下一个过滤器
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }
}


wed.xml 配置:

  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>org.dxsoft.util.SetCharacterEncodingFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

这样就能防止出现乱码的问题了~~~
不过在页面和过滤器中的编码要统一,不然就算不会有乱码,也会造成乱码,因为所有的REQUEST和RESPONSE都必须经过过滤器才能被程序所处理。如果编码不统一,就会发生转码错误。


不知道有多少人遇到过,通过RESPONSE传递参数时,传中文会出现乱码。这点很烦人的!!!> .<

我在写一个下载组件时就遇到了这种问题。找了好久终于找到了解决方法~~~~~~~
主要就是设置response的HTTP头部编码的问题。
fileName : 我所创建的文件名
response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode(fileName,"UTF-8"));


通过GET传递中文参数时的乱码问题:

很简单,但不知道就很麻烦了~~~  -_=

String  name  =  new String(request.getParament("name").getBytes("ISO-8859-1"), "GBK");

分享到:
评论
1 楼 qdchen 2008-01-15  
我在过滤器中设置了字符编码,可是经过多次传递之后就有变成了乱吗...真是郁闷...

相关推荐

    java转码工具

    Java转码工具是一种基于Java语言开发的实用程序...总的来说,Java转码工具是处理编码问题的有效工具,尤其对于处理中文字符集的转换,它可以帮助开发者和普通用户在不同编码格式间轻松转换,确保数据的准确性和一致性。

    汉字转码功能

    在Java或者Python等编程语言中,通常会有一个类库或函数来实现汉字转码。例如,在Java中,我们可以使用`java.nio.charset`包下的`CharsetDecoder`和`CharsetEncoder`类进行编码和解码。在Python中,可以使用内置的`...

    java的api中文转码示例

    本文将深入探讨如何使用Java API进行中文转码,以方便URL传参和其他应用。 首先,中文字符在计算机中存储时通常采用Unicode编码,而URL参数通常要求ASCII编码,这就涉及到字符编码的转换。在Java中,我们可以使用`...

    java转码代码

    在Java编程语言中,"转码"通常是指在不同字符编码之间进行转换的过程,以解决乱码问题。乱码是由于文件或数据流在处理时使用了错误的字符集导致的。在这个场景下,"java转码代码"指的是用于解决Java程序中遇到的乱码...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    汉字转码实例

    汉字转码是计算机处理中文字符的关键技术之一,它涉及到字符编码、解码和转换等多个方面。在计算机系统中,汉字通常不能直接以图形形式存储,而是需要转化为特定的编码表示,以便于计算机处理和传输。这里我们将深入...

    native2ascii.exe java的转码工具

    《深入理解Java转码工具:native2ascii.exe》 在Java开发过程中,有时我们需要处理包含非ASCII字符的文本文件,例如包含中文、日文或其他语言的字符串。这时,Java的`native2ascii.exe`工具就显得尤为重要。它是一...

    java中文乱码问题

    Java 中文乱码问题详解 Java 中文乱码问题是一个老生常谈的问题,特别是在 Web 应用中。今天,我们将从编码角度分析 Java 编译后在控制台和 Web 等终端显示乱码问题。 一、 Java 处理字符的原理 Java 使用 ...

    java中文乱码之解决URL中文乱码问题的方法

    在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...

    java URL中文参数乱码处理

    js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress...js到java encodeURI(url) String qijuType= new String(request.getParameter( ("qijuType")).getBytes("ISO-8859-1"), "utf-8");

    简单的UTF-8与GBK之间相互转码工具

    GBK是基于中文的编码,包含了大量的汉字和其他语言字符;而UTF-8是一种可变长度的Unicode编码,能容纳世界上几乎所有的字符集。 GBK编码是中国大陆广泛使用的编码标准,它基于GB2312,增加了许多额外的字符。UTF-8...

    Struts中重写方法中文转码问题

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    转码工具

    压缩包中的"convert.jar"很可能是一个Java编写的转码工具的可执行文件。Java的JAR(Java Archive)文件是包含了Java类和资源的归档文件,可以直接运行在支持Java的环境中。用户可以通过命令行或图形界面来调用这个...

    unicode转码工具

    该“unicode转码工具”特别适用于处理包含汉字的文本,能够将汉字转化为十进制或十六进制的Unicode码。Unicode码通常由两个或四个十六进制数字组成,例如汉字“我”的Unicode码是U+6211。在十进制中,它对应于20337...

    jsp中页面间传汉字参数转码的方法.docx

    在JavaServer Pages (JSP) 开发中,页面间的参数传递是常见的操作,尤其是在处理包含汉字的参数时,由于编码问题可能会导致乱码。本文主要介绍如何在JSP中正确地进行汉字参数的转码与解码,确保数据在页面间传递时...

    java国际化中文乱码问题解决包

    Java 国际化(i18n)是让软件能够适应不同语言和地区的过程,而中文乱码问题在处理多语言支持时经常遇到。`ResourceBundle` 是 Java 中用于管理国际化资源的关键类,它允许开发者存储特定语言环境下的文本、消息和...

    MD5编码后转码,转码汉字一致.txt

    针对c#或者java,其他编程语言,对中文汉字加密出现了密文不一致问题进行修复。增加编码类型,自定义编码类型

    前后台字符集转码.txt

    例如,当用户在前端输入中文时,如果直接将这些中文字符串发送到服务器,可能会出现乱码问题。因此,需要在前端对中文进行编码,在后端接收到数据后再进行解码。 ### 前端字符集转码 在JavaScript中,可以使用`...

    将字符串中的中文做UNICODE转码,非中文忽略

    将字符串中的中文做UNICODE转码,非中文忽略 简单实用 封装好了 直接用即可

    java中文乱码

    在传参的 jsp 对中文进行编码可以使用 java.net.URLEncoder.encode 函数,在接受的 jsp 对中文进行转码可以使用 URLDecoder.decode 函数。 四、Java 与数据库之间的乱码 大部分数据库都支持以 unicode 编码方式,...

Global site tag (gtag.js) - Google Analytics