gpt4 book ai didi

Java保存文件名中包含特殊字符的文件

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

我在 Java 文件编码方面遇到问题。

我有一个 Java 程序将输入流保存为具有给定文件名的文件,代码片段如下:

File out = new File(strFileName);
Files.copy(inStream, out.toPath());

在Windows下运行正常,除非文件名中包含一些特殊字符,如Ö,文件名中有这些字符,保存的文件在Windows上会显示乱码文件名。

我知道通过应用 JVM 选项 -Dfile.encoding=UTF-8 可以解决这个问题,但我会在我的代码中找到一个解决方案,而不是让我的所有用户更改他们的 JVM选项。

在调试程序时,我可以看到文件名字符串总是显示正确的字符,所以我猜问题不在于内部编码。

有人可以解释一下幕后出了什么问题吗?有没有办法以编程方式避免这个问题?我尝试从字符串中获取字节并更改编码,但它不起作用。

谢谢。

最佳答案

使用 URLEncoder class会工作:

String name = URLEncoder.encode("fileName#", "UTF-8");
File output = new File(name);

关于Java保存文件名中包含特殊字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361922/

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