在我的 C# Windows 应用程序中,我从
System.Environment.GetEnvironmentVariable("USERNAME")
获取用户名,而我的系统帐户不是 ascii,因此在调试时我得到的用户名是“????”,名称被更改。
在 Windows 中,我尝试启用 beta utf8 Unicode。它可以解决这个问题,但它是一个全局设置,不仅仅适用于我的应用程序。我不想要这样,我怎样才能使
GetEnvironmentVariable("USERNAME")
UTF8 兼容?
您的输出编码可能设置为 ASCII。在发送输出之前尝试使用它:
Console.OutputEncoding = System.Text.Encoding.UTF8;
这是一个您可能会发现很方便的小控制台测试应用程序:
using System
using System.Text;
public static class ConsoleOutputTest {
public static void Main() {
Console.OutputEncoding = System.Text.Encoding.UTF8;
for (var i = 0; i <= 1000; i++) {
Console.Write(Strings.ChrW(i));
if (i % 50 == 0) { // break every 50 chars
Console.WriteLine();
}
}
Console.ReadKey();
}
}