上传带有unicode名称的文件时遇到问题。 我上传文件名的示例"あ.pdf"然后我得到了一个文件名"¯チツ.pdf"在我的服务器上。
这是我的上传代码:
for (Part part : request.getParts()) {
String fileName = extractFileName(part);
if(fileName.trim() !=""){
part.write(savePath + File.separator + fileName);
}
}
我很感激任何答案。
谢谢,
答案 0 :(得分:0)
关于中国,日本和韩国(CJK)角色的支持,有很多错误信息。 Unicode标准支持JIS X 0208,JIS X 0212,JIS X 0221或JIS X 0213等所有CJK字符等等。无论使用哪种Unicode编码形式,都是如此:UTF-8,UTF-16或UTF-32。
UTF-8适用于大多数拉丁字母的文字。例如,英语,西班牙语,法语< / strong>,以及大多数网络技术,例如 HTML , CSS , JavaScript 。大多数Linux的文件默认使用UTF-8。 UTF-8编码系统向后兼容ASCII。 (意思是:如果文件只包含ASCII字符,那么使用UTF-8编码文件会产生与使用ASCII作为编码方案相同的字节序列。)
UTF-16 是Unicode的另一种编码系统。使用UTF-16,每个字符编码为至少2个字节,Unicode中常用的字符正好是2个字节。 对于包含大量中文字符的亚洲语言,例如中文和日语,UTF-16会创建较小的文件大小。
还有 UTF-32 ,每个字符总是使用4个字节。它创建了更大的文件大小,但解析起来更简单。目前, UTF-32使用率不高。
目前最流行的编码系统: -
1. ASCII. For English. Most widely used before year 2000.
2. UTF-8 of Unicode (used in Linux by default, and much of the Internet)
3. UTF-16 of Unicode (used by Microsoft Windows and Mac OS X's file systems, Java programing language, …)
4. GB 18030 (Used in China, contains all Unicode chars).
5. EUC (Extended Unix Code). Used in Japan.
6. IEC 8859 series (used for most European langs)
另外看看这些: - Uploaded filename encoding issue for Japanese and Chinese&amp; Java servlet download filename special characters。希望这能解决你的问题。