gpt4 book ai didi

c# - 将 Unicode 设置为控制台编码时为 "The parameter is incorrect"

转载 作者:太空狗 更新时间:2023-10-29 21:37:19 25 4
gpt4 key购买 nike

我收到以下错误:

Unhandled Exception: System.IO.IOException: The parameter is incorrect.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIOError()
at System.Console.set_OutputEncoding(Encoding value)
at (my program)

当我运行以下代码行时:

 Console.OutputEncoding = Encoding.Unicode;

知道为什么吗?如果我将编码设置为 UTF8,则不会出现此错误。

最佳答案

编码。Unicode 是 UTF-16,它使用 2 个字节来编码所有字符。 ASCII 字符(英文字符)在 UTF-8 中是相同的(单字节,相同的值),所以这可能就是它起作用的原因。

我的猜测是 Windows 命令外壳不完全支持 Unicode。有趣的是 Powershell 2 GUI 确实支持 UTF-16(据我所知),但程序在那里抛出相同的异常。

以下代码有效,表明 Console 对象可以重定向其输出并支持 Encoding.Unicode:

FileStream testStream = File.Create("test.txt");
TextWriter writer = new StreamWriter(testStream, Encoding.Unicode);
Console.SetOut(writer);
Console.WriteLine("Hello World: \u263B"); // unicode smiley face
writer.Close(); // flush the output

关于c# - 将 Unicode 设置为控制台编码时为 "The parameter is incorrect",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419518/

25 4 0