如何在winform程序中以正确的方式输入或输出韩语

问题描述 投票:0回答:1
        Console.InputEncoding = Encoding.Unicode;
        Console.OutputEncoding = Encoding.GetEncoding("utf-8");
        Console.WriteLine("开始测试starttest전소미123");
        string input = Console.ReadLine();
        Console.WriteLine(input);
        Console.ReadKey();
        Console.ReadKey();

运行这些代码时,我得到的字符串完全相同,如下所示

enter image description here

并且如果我没有设置InputEncoding或OutputEncoding或两者都不设置,我将无法获得正确的字符。

但是我无法在winform程序中设置Console.OutputEncoding。它在mscorlib.dll中引发了类型为'System.IO.IOException'的未处理异常。此错误发生在下面的第二行,

Console.OutputEncoding = Encoding.Unicode;

代码

        Console.InputEncoding = Encoding.Unicode;
        Console.OutputEncoding = Encoding.Unicode;
        Process process = new Process()
        {
            StartInfo = new ProcessStartInfo
            {
                FileName = $".\\test.exe",
                Arguments = "",
                CreateNoWindow = true,
                UseShellExecute = false,
                ErrorDialog = true,
                //AutoFlush = true,
                //RedirectStandardInput = true,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                StandardOutputEncoding = Encoding.GetEncoding("utf-8"),
            },
        };
        process.Start();
        string text = process.StandardOutput.ReadLine();

我在网上搜索了类似的问题,并进行了数小时的测试,只是无法弄清。

c# winforms encoding process cjk
1个回答
0
投票

您为exe文件使用什么文本编辑器和编码?我认为例如记事本的默认编码器是ANSI,我知道它不支持亚洲符号。如果要更改记事本的编码器,请单击文件->另存为,然后可以将保存在左侧的编码更改为保存按钮,并将编码更改为UTF-8或Unicode。

© www.soinside.com 2019 - 2024. All rights reserved.