当我在
我认为Windows使用UNICODE字符集。
所以,我的问题是:
1. 为什么Windows使用ANSI代码页而不是Unicode? 2. Windows使用UTF-16或UCS-2?我可以通过命令或MSDN链接来检查这个吗? 3. UTF-16或UCS-2只是一种编码方式吗?还是一个字符集? 4. UTF-8、UTF-16、UTF-32等是否具有不同的字符集大小?
我很困惑。请有人做出定义。
cmd.exe
窗口中运行chcp
命令时,它代表了Windows使用的代码页。我认为Windows使用UNICODE字符集。
所以,我的问题是:
1. 为什么Windows使用ANSI代码页而不是Unicode? 2. Windows使用UTF-16或UCS-2?我可以通过命令或MSDN链接来检查这个吗? 3. UTF-16或UCS-2只是一种编码方式吗?还是一个字符集? 4. UTF-8、UTF-16、UTF-32等是否具有不同的字符集大小?
我很困惑。请有人做出定义。
GetConsoleCP
、SetConsoleCP
和SetConsoleOutputCP
。它不允许独立设置输出代码页而不影响输入代码页。值得注意的是,当将其用作通用文件时,通过ReadFile
和WriteFile
使用控制台的输入和输出代码页,其中不支持UTF-16LE(代码页1200)。 - Eryk SunSetConsole[Output]CP
都会导致在conhost.exe中调用SrvSetConsoleCP
,实际上设置了CP。因此,CP只是conhost.exe中的变量/状态,并影响附加到它的进程。如果我们从当前的cmd运行新的cmd - 它也将对其产生影响(连接到同一个conhost.exe),但是如果从资源管理器执行cmd,则会有单独的conhost.exe,对其没有影响。 - RbMm