gpt4 book ai didi

java - 如何在 Java 中为文件名(不是内容)指定一个字符集?

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:54 25 4
gpt4 key购买 nike

我们正在使用默认区域设置“POSIX”的 Linux 服务器上运行 Java Web 应用程序。我们的一些客户上传的文件在文件名中包含非 ASCII 字符。我们可以通过 unicode 在 Java 中保留那些非 ascii 字符,但是当我们将上传的文件实际保存到文件系统中时,它们会丢失(保存的文件名会包含很多问号),因为文件系统的默认语言环境不支持非- ascii 字符。在用 Java 保存文件之前,有没有办法为文件名(不是内容)指定一个字符集?

最佳答案

可移植的 Java API 没有文件系统字符编码的概念,因为它不可移植:Windows 例如无论语言环境如何,都将文件名保存为 unicode。但是,在 Linux 上,区域设置的 LC_CTYPE 方面决定了文件系统的编码。因此,通过导出 LC_CTYPE=en_US.utf8 或类似在您启动 Java 应用程序之前 的环境,您的应用程序将使用它来处理文件名。

另见 file.encoding has no effect, LC_ALL environment variable does it其中讨论了此转换背后的一些内部机制。

关于java - 如何在 Java 中为文件名(不是内容)指定一个字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com