【问题标题】:convert from japanese string to unicode java从日文字符串转换为 unicode java
【发布时间】:2014-07-10 04:59:34
【问题描述】:

上传带有 unicode 名称的文件时遇到问题。 例如,当我上传文件名“あ.pdf”时,我的服务器上有一个文件名“ ̄チツ.pdf”。

这是我的上传代码:

    for (Part part : request.getParts()) {
        String fileName = extractFileName(part);
        if(fileName.trim() !=""){
            part.write(savePath + File.separator + fileName);
        }
    }

感谢您的任何回答。

谢谢,

【问题讨论】:

  • 可以在java中使用国际化的概念。我建议一个链接并尝试实施。 cs.fit.edu/~ryan/java/language/i18n.html
  • 你知道原始字符串是用哪种编码吗?
  • 我在客户端使用 utf-8

标签: java unicode


【解决方案1】:

有很多关于支持中文、日文和韩文 (CJK) 字符的错误信息。 Unicode 标准支持 JIS X 0208、JIS X 0212、JIS X 0221 或 JIS X 0213 等所有 CJK 字符。无论使用哪种 Unicode 编码形式都是如此:UTF-8、UTF-16 或 UTF-32。

UTF-8 适用于以拉丁字母为主的文本。 例如,EnglishSpanishFrench,以及大多数网络技术,例如 HTMLCSSJavaScript。大多数 Linux 的文件默认为 UTF-8。 UTF-8 编码系统向后兼容 ASCII。 (意思是:如果一个文件只包含 ASCII 字符,那么使用 UTF-8 对文件进行编码会产生与使用 ASCII 作为编码方案相同的字节序列。)

UTF-16 是 Unicode 的另一种编码系统。使用 UTF-16,每个 char 至少被编码为 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 & Java servlet download filename special characters。希望这能解决您的问题。

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 1970-01-01
    • 2016-11-04
    • 2022-07-21
    • 2014-01-07
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多