当前位置: 首页 > 知识库问答 >
问题:

在linux Tomcat下使用unicode字符创建文件名

臧正平
2023-03-14

非常简单的代码:

try {
     new File("/home/user/programm/log/тест1.log").createNewFile();
} catch (Exception e) {
     System.out.println(e);
}
    null
    null
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

一些调查:

调试到file.createNewFile方法之后,我发现本机方法java.io.unixFileSystem.CreateFileTracitional调用string.getBytes方法,参数为charsetName=ansi_x3.4-1968。在我通过file.encoding和sun.jnu.encoding重新定义它们之前,这种编码是默认的。我可以通过JVisualVM看到这些变量的UTF-8。

共有1个答案

淳于博
2023-03-14

应该定义环境变量LC_ALL。在我的示例中,我将其设置为lc_all=en_us.utf-8。我使用upstart脚本启动Tomcat,java在此脚本之外看不到enverinment变量。在我将这个env添加到tomcat.conf之后,问题就解决了。

env LC_ALL=EN_US.UTF-8

 类似资料:
  • 问题内容: 我想在Java中显示Unicode字符。如果我这样做,则效果很好: 符号等于“∂”。这是我想要的。 问题是我知道Unicode号,因此需要从中创建Unicode符号。我(对我)尝试了显而易见的事情: 但是,在这种情况下,符号等于“ \ u2202”。那不是我想要的 如果我知道符号的Unicode编号(但只能在运行时-我不能像第一个示例那样对其进行硬编码),如何构造该符号? 问题答案:

  • 最近,我们开始使用Oracle12c数据库,现在我们遇到了文件夹名称中包含特殊字符的问题(例如“š"、”č"、“ot”\“)。虽然创建了文件夹,但没有特殊字符--相反,显示了一些字符组合。例如,使用参数“d:/test/testščé”,创建的文件夹是“testé”。因此,每个特殊字符使用2个字符。 数据库是版本12C(12.1.0.2.0),带有NLS_CHARACTERSET al32utf8

  • 问题内容: 我将包含诸如 PéréquationLES HOPITAUX NEUFS.xls之 类的特殊字符 压缩 到另一个文件夹中,例如 temp 。 我可以压缩文件,但是问题是文件名自动更改为 P +¬r+¬报价LES HOPITAUX NEUFS.xls 。 如何在zip归档文件中支持Unicode字符作为文件名? 问题答案: 这一点取决于您用于创建存档的代码。在 旧 的Java压缩类不是很

  • 问题内容: 我正在尝试在NetBeans 6.0.1中使用OpenCSV解析.csv文件。我的文件包含一些Unicode字符。当我在输出中写入字符时,字符以其他形式显示,例如(HJ1’-E /;)。当我在记事本中打开此文件时,它看起来还可以。 我使用的代码: 问题答案: 首先,您需要知道文件的编码格式,例如UTF-8或UTF-16。生成此文件的原因是什么? 在那之后,它相对简单- 您需要创建一个包

  • 我有一块帆布。它要求用户从a-Z、a-Z或0-9中绘制一个字符。一旦用户绘制了一个角色(比如a),当前画布对象将保存在画布的arraylist中。另一个空白画布弹出,要求用户绘制B,以此类推。 这些程序运行良好。但是我想创建一个文件,并绘制所有可接受的字符。 我在最后显示的画布下方有一个按钮,单击该按钮时,将从画布的arraylist中提取所有字符,并创建一个文件从中删除。但是怎么做呢?

  • 链接: https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals 问题:< br >使用带反斜杠的模板文字语法创建列表元素(li)字符串数组。每个列表元素的文本应该是result对象的failure属性中的数组元素之一