今天学习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实现是基于这两个包的。
发张截图,欢迎有兴趣的朋友一起研究这个组件:
分享到:
相关推荐
Linux 下 Oracle 中文乱码字符集设置 Linux 下的 Oracle 数据库在导入数据库时出现中文乱码问题,这是因为 Oracle 数据库中的字符集格式不支持中文。解决方法是通过修改字符集格式,将其修改成支持中文的格式,这样...
MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...
### Oracle 字符集设置 #### 概述 在Oracle数据库管理与应用开发中,字符集的正确配置至关重要,尤其是在处理不同字符集之间的数据交换时。本文将深入探讨Oracle字符集的相关概念,包括如何通过设置环境变量来修改...
由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要更改Oracle数据库的字符集设置。本文将详细介绍如何通过一系列的Oracle SQL命令来完成这一任务。 #### 二、准备工作 在进行任何字符集修改操作...
在C#编程环境中,开发人员可能遇到这种情况:应用程序的字符集设置为英文,但需要访问的Oracle数据库使用了中文字符集。在这种情况下,直接插入数据会导致乱码,因为数据的编码格式不匹配。为了解决这个问题,可以...
MySQL字符集设置原理及其常见问题解决是数据库管理中不可或缺的一部分,尤其对于处理多语言或特殊字符的数据时,正确的字符集配置至关重要。字符集定义了数据库、表和字段能存储的字符范围,它决定了数据的编码和...
在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; ``` 这将返回当前数据库的全局字符集。此外,也可以查询...
该文档涵盖了字符集的概念、字符集的设置、字符集的影响因素、解决汉字显示异常的方法等多个方面的内容。 一、字符集概念 字符集是 Oracle 数据库中用于适应不同语言文字显示的设置。常见的字符集有 ZHS16CGB...
在计算机科学领域,字符集(Character Set)是用于表示文本的一组符号集合,它定义了可以被编码的字符范围和编码方式。字符集对于不同语言的处理至关重要,尤其是在存储、显示和传输文本时。本篇文章将详细介绍韩文...
在IT领域,尤其是在数据库管理与应用中,字符集的设置对于确保数据的正确存储与显示至关重要。MySQL作为全球广泛使用的开源关系型数据库管理系统之一,其字符集的设置直接影响到数据的编码方式,进而影响到数据的...
香港增补字符集香港增补字符集香港增补字符集香港增补字符集[参照].pdf
- 如果会话没有特殊设置,则会话字符集通常与`nls_instance_parameters`中的设置相同。 4. **字符集一致性要求** - 在Oracle数据库中,客户端和服务器之间的字符集要求保持一致,以确保非ASCII字符的正确显示。...
3. **客户端连接问题**:确保客户端也设置了正确的字符集,避免因客户端与服务器字符集不一致导致的数据显示问题。 通过以上步骤,你可以有效地解决MySQL中的字符集修改问题,确保数据的一致性和准确性。希望这些...
"设置环境变量修改Oracle客户端字符集" 标题:“设置环境变量修改Oracle客户端字符集” 描述:“设置环境变量修改Oracle客户端字符集” 标签:“Oracle 数据库 关系型数据库 参考文献 专业指导” 本文主要讨论了...
Oracle数据库的字符集是决定数据库如何存储和处理字符数据的关键因素。在某些情况下,由于字符集不匹配,可能会导致数据导入导出时出现问题,比如提到的.dmp文件无法正常导入到其他数据库。针对这种情况,我们可以...
- **字符集识别**:Oracle数据库支持多种字符集,如AL32UTF8、WE8ISO8859P1等,不同的字符集用于支持不同语言和特殊字符。在导入导出过程中,确保源和目标数据库的字符集兼容至关重要,否则可能导致乱码。 - **字符...
在进行任何更改之前,首先需要确认当前数据库的字符集设置。可以通过执行以下SQL命令来查看: ```sql SELECT name, codepage FROM sysdatabases WHERE name = 'your_database_name'; ``` 如果`codepage`字段显示为...
- 查看服务器和客户端的当前字符集设置,可以通过查询系统视图或使用系统管理工具。 5. **错误处理** - 如果字符集配置不当,可能会导致字符转换失败,表现为乱码或无法存储特定字符。解决方法是检查字符集兼容性...
总之,字符编码和字符集是理解计算机处理文本的基础,而正确设置Linux系统中的字符集是确保中文等多语言环境正常工作的重要环节。在CentOS7中,通过安装必要的中文支持软件包,修改配置文件并设置`LANG`环境变量,...