我试图从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)