Unicode 和 MS DOS 会话

Unicode 和 MS DOS 会话

考虑到 UTF-8 + Windows CMD 噩梦......

看完之后这个问题,这些解决方案只是部分解决方案吗?有没有办法在 cmd 环境中全局设置字符集/编码?似乎 CHCP 命令不会更改 stdout/stderr 编码。

为了检查它:编写一个程序,用拉丁/韩语/乌克兰语字符串填充文件。

在直接输出时,如果您在源代码中正确设置了编码,则文件将没问题(我用 Java 检查过,文件的编码设置很简单)。但是,如果您将输出重定向到日志文件,则其中只会有一系列????????????????????...

间接也可能有用,如下所示:

PROMPT> myprog < inputdata.txt > outputdata.txt

我是不是漏掉了什么?是 cmd 错误地转换了 stdout,还是 Java 根据 cmd 编码调整了 System.out?我还没有找到任何方法来重新定义 System.out/err 编码。

答案1

考虑到 UTF-8 + Windows CMD 噩梦......

适用于 C#。

应该也适用于 Java,也许你做错了。你应该把问题代码放到 stackoverflow 上,问问你的编码语句哪里出错了。

为了检查它:编写一个程序,用拉丁/韩语/乌克兰语字符串填充文件。

我在 C# 中做过类似的事情

直接输出时,

你的意思是展示

如果您在源代码中正确设置了编码,则文件将没有问题(我用 Java 检查过,文件的编码设置很简单)。但是,如果您将输出重定向到日志文件,您将只会在其中看到一系列 ????????????????????...

您必须在代码中正确获取编码语句,然后 > 才能起作用。

我无需更改 CHCP 即可将非 ascii unicode 字符重定向到文件。或者换句话说。

间接也可能有用,如下所示:

PROMPT> myprog < inputdata.txt > outputdata.txt 我是不是漏掉了什么?是 cmd 错误地转换了 stdout,还是 Java 根据 cmd 编码调整了 System.out?我还没有找到任何方法来重新定义 System.out/err 编码。

这都是你的 Java 代码的问题。

看看它在 C# 中的工作原理

https://stackoverflow.com/questions/30904504/font-is-right-why-cant-i-get-this-unicode-character-to-display-in-this-c-sharp

看看我对 Htin 答案的评论。但那是针对 C# 的

如果你想用 Java 实现,请将一段带有问题的演示代码发布到 stackoverflow。这是你遇到的一个编程问题。

相关内容