C# Unicode到ANSI

C# Unicode到ANSI,c#,string,encoding,C#,String,Encoding,如何将unicode转换为ANSI 示例I具有以下unicode用户名: очередной 我称之为导入方法: [DllImport("kernel32.dll", EntryPoint = "GetTempPathA")] public static extern uint GetTempPath(uint nBufferLength, [Out()] System.Text.StringBuilder lpBuffer); 我收到以下结果: C:\Users\A690~1\AppDa

如何将unicode转换为ANSI

示例I具有以下unicode用户名:

очередной 
我称之为导入方法:

[DllImport("kernel32.dll", EntryPoint = "GetTempPathA")]
public static extern uint GetTempPath(uint nBufferLength, [Out()]
System.Text.StringBuilder lpBuffer);
我收到以下结果:

C:\Users\A690~1\AppData\Local\Temp\
现在我尝试了多种编码方式,如:

Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(Environment.UserName));
Encoding.GetEncoding(1250).GetString(Encoding.Unicode.GetBytes(Environment.UserName));
Encoding.GetEncoding(1251).GetString(Encoding.Unicode.GetBytes(Environment.UserName));
但是他们没有一个给我和导入方法一样的结果。如何正确地将unicode字符串转换为ANSI,使其产生与导入方法相同的结果?

您应该使用该方法,而不是
gettempatha
方法。
W
使其成为Unicode,这是Unicode字符所需要的


尝试将Unicode转换为ASCII(当您想使用非ASCII范围的字符时,这是不可能的)不会解决问题。

导入方法不会转换任何内容,而是返回用户临时目录的路径。我的问题是如何将字符串“ohччччччччччччччччччччччччч。就这么简单@user7436839