`
Teok
  • 浏览: 150660 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jUpload字符集设置

阅读更多
今天学习jUpload(一个applet文件上传组件,详见www.sourceforge.net/jupload)的时候,发现上传后的中文文件名都成了乱码,文件内容并没有问题,查了一下jUpload的doc,上面说设置文件名编码的参数filenameEncoding自从3.3.0版本后不再使用了,我跟了下代码,文件名在服务器servlet处就已经乱了。google一下这个问题,原来只要将在servlet中对commons.fileupload对象调用一次如下方法:
upload.setHeaderEncoding("UTF-8");


然后中文乱问题解决了,顺便看了一下fileupload的api,其原文如下:
引用

public void setHeaderEncoding(java.lang.String encoding)
Specifies the character encoding to be used when reading the headers of individual part. When not specified, or null, the request encoding is used. If that is also not specified, or null, the platform default encoding is used.
Parameters:
encoding - The encoding used to read part headers.

最后一句表明,这个编码设置会用于读取header信息,而jUpload正是将文件名以及文件分割数等信息放在header中,所以头信息的读取是否正确决定文件名编码正确与否。
既然如此,我猜可能是jUpload的http请求并未给request设置编码方式,结果也是如此。

当使用ftp协议上传的时候,又出现了乱码,处理方式和上面的基本相同:
我在FileUploadThreadFTP类的beforeRequest()方法里加入了一句:
ftp.setControlEncoding("GBK");

这样ftp模式下就不会出现乱码。注:当commons.net.ftp初始化一个ftpClient的时候它的默认编码是iso-8859-1.

做完ftp编码的改动之后需要将jUpload重新打包.另外参照jUpload的readme来使用ftp协议传输文件的时候,需要将commons-net,commons-oro这俩包放在jUpload jar的同级目录下,它的ftp实现是基于这两个包的。
发张截图,欢迎有兴趣的朋友一起研究这个组件:
分享到:
评论
1 楼 aigyoo 2012-09-14  
很有兴趣就是不知道怎么做

相关推荐

    linux 下oracle中文乱码字符集设置

    Linux 下 Oracle 中文乱码字符集设置 Linux 下的 Oracle 数据库在导入数据库时出现中文乱码问题,这是因为 Oracle 数据库中的字符集格式不支持中文。解决方法是通过修改字符集格式,将其修改成支持中文的格式,这样...

    mysql字符集设置

    MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...

    oracle 字符集设置

    ### Oracle 字符集设置 #### 概述 在Oracle数据库管理与应用开发中,字符集的正确配置至关重要,尤其是在处理不同字符集之间的数据交换时。本文将深入探讨Oracle字符集的相关概念,包括如何通过设置环境变量来修改...

    oracle 字符集修改命令

    由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要更改Oracle数据库的字符集设置。本文将详细介绍如何通过一系列的Oracle SQL命令来完成这一任务。 #### 二、准备工作 在进行任何字符集修改操作...

    oracle英文字符集插入到中文字符集

    在C#编程环境中,开发人员可能遇到这种情况:应用程序的字符集设置为英文,但需要访问的Oracle数据库使用了中文字符集。在这种情况下,直接插入数据会导致乱码,因为数据的编码格式不匹配。为了解决这个问题,可以...

    Mysql字符集设置原理及常见问题解决

    MySQL字符集设置原理及其常见问题解决是数据库管理中不可或缺的一部分,尤其对于处理多语言或特殊字符的数据时,正确的字符集配置至关重要。字符集定义了数据库、表和字段能存储的字符范围,它决定了数据的编码和...

    Oracle 字符集详解

    在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; ``` 这将返回当前数据库的全局字符集。此外,也可以查询...

    Oracle数据库字符集问题解决方案大全.doc

    该文档涵盖了字符集的概念、字符集的设置、字符集的影响因素、解决汉字显示异常的方法等多个方面的内容。 一、字符集概念 字符集是 Oracle 数据库中用于适应不同语言文字显示的设置。常见的字符集有 ZHS16CGB...

    韩文、日文、繁体字的字符集,及字符集介绍

    在计算机科学领域,字符集(Character Set)是用于表示文本的一组符号集合,它定义了可以被编码的字符范围和编码方式。字符集对于不同语言的处理至关重要,尤其是在存储、显示和传输文本时。本篇文章将详细介绍韩文...

    设置mysql字符集

    在IT领域,尤其是在数据库管理与应用中,字符集的设置对于确保数据的正确存储与显示至关重要。MySQL作为全球广泛使用的开源关系型数据库管理系统之一,其字符集的设置直接影响到数据的编码方式,进而影响到数据的...

    香港增补字符集香港增补字符集香港增补字符集香港增补字符集[参照].pdf

    香港增补字符集香港增补字符集香港增补字符集香港增补字符集[参照].pdf

    怎样修改查看Oracle字符集及怎样修改字符集

    - 如果会话没有特殊设置,则会话字符集通常与`nls_instance_parameters`中的设置相同。 4. **字符集一致性要求** - 在Oracle数据库中,客户端和服务器之间的字符集要求保持一致,以确保非ASCII字符的正确显示。...

    MYSQL修改字符集默认问题

    3. **客户端连接问题**:确保客户端也设置了正确的字符集,避免因客户端与服务器字符集不一致导致的数据显示问题。 通过以上步骤,你可以有效地解决MySQL中的字符集修改问题,确保数据的一致性和准确性。希望这些...

    设置环境变量修改Oracle客户端字符集.pdf

    "设置环境变量修改Oracle客户端字符集" 标题:“设置环境变量修改Oracle客户端字符集” 描述:“设置环境变量修改Oracle客户端字符集” 标签:“Oracle 数据库 关系型数据库 参考文献 专业指导” 本文主要讨论了...

    oracle修改字符集

    Oracle数据库的字符集是决定数据库如何存储和处理字符数据的关键因素。在某些情况下,由于字符集不匹配,可能会导致数据导入导出时出现问题,比如提到的.dmp文件无法正常导入到其他数据库。针对这种情况,我们可以...

    oracle数据库导入导出命令! 更改字符集

    - **字符集识别**:Oracle数据库支持多种字符集,如AL32UTF8、WE8ISO8859P1等,不同的字符集用于支持不同语言和特殊字符。在导入导出过程中,确保源和目标数据库的字符集兼容至关重要,否则可能导致乱码。 - **字符...

    sybase 字符集转换

    在进行任何更改之前,首先需要确认当前数据库的字符集设置。可以通过执行以下SQL命令来查看: ```sql SELECT name, codepage FROM sysdatabases WHERE name = 'your_database_name'; ``` 如果`codepage`字段显示为...

    sybase字符集及各种常用字符集介绍

    - 查看服务器和客户端的当前字符集设置,可以通过查询系统视图或使用系统管理工具。 5. **错误处理** - 如果字符集配置不当,可能会导致字符转换失败,表现为乱码或无法存储特定字符。解决方法是检查字符集兼容性...

    CentOS7设置中文字符集1

    总之,字符编码和字符集是理解计算机处理文本的基础,而正确设置Linux系统中的字符集是确保中文等多语言环境正常工作的重要环节。在CentOS7中,通过安装必要的中文支持软件包,修改配置文件并设置`LANG`环境变量,...

Global site tag (gtag.js) - Google Analytics