Unicode 处理包含汉字的输出

Unicode 处理包含汉字的输出,unicode,chinese-locale,Unicode,Chinese Locale,我在windows操作系统上使用的命令(powershell qwinsta)返回活动会话。输出包含中文字符(用户名)。我必须验证这个中文用户名。但是我如何处理这个中文用户名呢?如果我将输出写入控制台,它会显示问号,如果我将输出(结果)重定向到文本文件,那么它也会将问号写入文件(用于汉字)。如何处理此问题?一个选项是将非Unicode程序使用的语言更改为中文。在Windows 7上,转到:控制面板、区域和语言、管理、更改系统区域设置并将其更改为适当的中文设置。重新启动,控制台将支持中文字符 另一

我在windows操作系统上使用的命令(powershell qwinsta)返回活动会话。输出包含中文字符(用户名)。我必须验证这个中文用户名。但是我如何处理这个中文用户名呢?如果我将输出写入控制台,它会显示问号,如果我将输出(结果)重定向到文本文件,那么它也会将问号写入文件(用于汉字)。如何处理此问题?

一个选项是将非Unicode程序使用的语言更改为中文。在Windows 7上,转到:控制面板、区域和语言、管理、更改系统区域设置并将其更改为适当的中文设置。重新启动,控制台将支持中文字符

另一个选项是将输出重定向到Powershell中的文件,该文件以UTF-16格式写入:

C:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\> qwinsta > out.txt
PS C:\> notepad out.txt

第一种选择不适合我的情况,所以我没有尝试。我尝试了第二种情况,但它不起作用。@user1423015,我刚从powershell
qwinsta>out.txt运行,输出文件默认用UTF-16编码。只要用记事本打开文件,它就会正确显示内容。您的默认控制台字体可能不支持中文。我的控制台支持Lucida控制台、ConsoleAs和光栅字体。我尝试了所有这些,但没有运气。您使用的是哪种控制台字体?你怎么知道的?我没有在控制台上打印出来。我运行了
powershell
qwinsta>out.txt
notepad out.txt
。控制台仅支持有限的OEM字符集,这通常在美国版本的Windows上,除非您更改用于非Unicode程序的语言,如我在回答中提到的。