【发布时间】:2017-09-05 22:39:11
【问题描述】:
我正在编写一个在 Tomcat 上运行的 Web 应用程序。
在这个网络应用程序中,我想创建/保存这样的文件:
File destFile = new File(path + "/" + fileName);
destFile.createNewFile();
现在棘手的是文件名是一个 UTF-8 编码的字符串。不幸的是,所有 UTF-8 字符(例如德语变音符号)都被替换为“?”在实际创建的文件名中。
所以文件名“hellö.txt”以“hell?.txt”结尾。
我该如何解决这个问题?
我在 Ubuntu 14.04 服务器上运行,据我所知,一切都设置为支持 UTF-8。
我已经将-Dfile.encoding=UTF8 添加到 JAVA_OPTS 中,但这没有帮助。
干杯。
【问题讨论】:
-
locale -a在运行 Tomcat 的操作系统中表示什么? -
我相信这是一个可以通过使用替代 API 创建文件来解决的缺陷。见stackoverflow.com/questions/14171565/…
-
locale -a 给出:C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG .utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX
标签: java file utf-8 character-encoding