Pau*_*xon 19 c++ utf-8 console-application
对于在英语Windows(XP,Vista或7)上使用Visual Studio 2008编译的C++控制台应用程序.是否可以打印到控制台并使用cout或wcout正确显示UTF-8编码的日语?
Sla*_*lav 12
这应该有效:
#include <cstdio>
#include <windows.h>
#pragma execution_character_set( "utf-8" )
int main()
{
SetConsoleOutputCP( 65001 );
printf( "Testing unicode -- English -- ???????? -- Español -- ???????. aäbcdefghijklmnoöpqrsßtuüvwxyz\n" );
}
Run Code Online (Sandbox Code Playgroud)
不知道这是否会影响什么,但源文件被保存为Unicode的(UTF-8具有签名) -代码页65001在FILE - >高级保存选项...。
Project -> Properties -> Configuration Properties -> General -> Character Set设置为Use Unicode Character Set。
有人说您需要将控制台字体更改为Lucida Console,但在我这边,它与Consolas和Lucida Console 一起显示。
Windows控制台默认使用OEM代码页来显示输出.
要将代码页更改为Unicode chcp 65001,请在控制台中输入,或尝试以编程方式更改代码页SetConsoleOutputCP.
请注意,您可能必须将控制台的字体更改为在unicode范围内具有字形的控制台.
以下是MVP Michael Kaplan关于如何通过控制台正确输出UTF-16的文章.您可以将UTF-8转换为UTF-16并输出.
| 归档时间: |
|
| 查看次数: |
29593 次 |
| 最近记录: |