相关疑难解决方法(0)

从控制台读取unicode

我试图从C#中的控制台读取unicode字符串,例如,让我使用他的:

C:\ SVN \D³ebugger的\ src \виталик\的Program.cs

起初我只是试着Console.ReadLine()回复了我c:\SVN\D3ebugger\src\???????\Program.cs

我已经尝试将Console.InputEncoding设置为UTF8,Console.InputEncoding = Encoding.UTF8但是返回了我c:\SVN\D³ebugger\src\???????\Program.cs,基本上将字符串的Cyrillic部分弄糟了.

所以随机磕磕绊绊,我试图设置这样的编码,Console.InputEncoding = Encoding.GetEncoding(1251);这回来了c:\SVN\D?ebugger\src\???????\Program.cs,这次破坏了³角色.

此时似乎通过切换InputStream的编码,我一次只能获得一种语言.

我也尝试过本地人做这样的事情:

// Code
public static string ReadLine()
{
    const uint nNumberOfCharsToRead = 1024;
    StringBuilder buffer = new StringBuilder();

    uint charsRead = 0;
    bool result = ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), buffer, nNumberOfCharsToRead, out charsRead, (IntPtr)0);

    // Return the input minus the newline character
    if (result && charsRead > 1) return buffer.ToString(0, (int)charsRead - 1);
    return string.Empty;
} …
Run Code Online (Sandbox Code Playgroud)

.net c# console encoding

15
推荐指数
2
解决办法
5743
查看次数

标签 统计

.net ×1

c# ×1

console ×1

encoding ×1