gpt4 book ai didi

java - 如何在Java中将标准输出更改为 "UTF-8"

转载 作者:行者123 更新时间:2023-12-01 11:34:03 24 4
gpt4 key购买 nike

我使用Java程序从网站下载了文件,标题如下所示

Content-Disposition attachment;filename="Textkürzung.asc";

没有指定编码

我要做的是下载后,将文件名传递给另一个应用程序以进行进一步处理。我用
System.out.println(filename);

在标准输出中,字符串被打印为 Textk³rzung.asc
如何在Java中将标准输出更改为“UTF-8”?

我尝试编码为“UTF-8”,但内容仍然相同

更新:

我能够在不更改任何代码的情况下解决此问题。在我从其他应用程序将此文件称为jar文件的地方,我执行了以下操作
java -DFile.Encoding=UTF-8 -jar ....
这似乎已经解决了问题

谢谢大家的支持

最佳答案

您看到的结果表明您的控制台希望文本使用Windows“代码页850”编码-字符ü具有Unicode代码点U + 00FC。字节值0xFC在Windows代码页850中呈现为³。因此,如果您希望该名称正确显示在控制台上,则需要使用“Cp850”编码进行打印:

PrintWriter consoleOut = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
consoleOut.println(filename);

这是否就是您的“其他应用程序”所期望的是另一个问题-如果其他应用程序也正在读取其标准输入为Cp850,则该其他应用程序只会看到正确的名称。

关于java - 如何在Java中将标准输出更改为 "UTF-8",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567208/

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