c# - 如何在winform程序中以正确的方式输入或输出韩语
问题描述
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();
当我运行这些代码时,我得到完全相同的字符串,如下所示
如果我不设置 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();
我在网上搜索了类似的问题并测试了好几个小时,只是想不通。
解决方案
您对 exe 文件使用什么文本编辑器和编码?例如,我认为记事本的默认编码器是 ANSI,我知道它不支持亚洲符号。如果要更改记事本的编码器,请单击“文件”->“另存为”,然后您可以在“保存”按钮左侧更改编码并将编码更改为 UTF-8 或 Unicode。
推荐阅读
- java - Java通用问号和继承
- python - Markdown 单元格 Jupyter Notebook 中的图像
- rxjs - 在nestjs中重试rxjs
- go - 在 Golang 中更改 slice 指针的值
- python - pytest + opencv + 多处理 = 分段错误
- odoo - 如何根据 Odoo 12 中选择的表单视图显示动态选择字段?
- java - 尽管排除了测试类,SonarCloud 仍显示测试类的覆盖率
- cypress - 赛普拉斯工具与从终端运行它们之间是否存在不一致?
- regex - 如何在正则表达式匹配中也获取字符串的其余部分?
- sql - 在 PLSQL 中使用命名空间解析嵌套 XML