为什么在cmd.exe中不显示utf-8字符?

时间:2014-04-20 11:24:49

标签: c++ windows c++11 utf-8 cmd

我在windows下用tdm-gcc测试c ++ 11字符串文字:

#include <iostream>

int main(int argc, char** argv)
{
    std::cout << u8"你确定要这么做吗" << std::endl;
    return 0;
}

命令行:

e:\src\c++\11>g++ utf8_literal.cc -std=c++11

使用chcp 65001将代码更改为utf8然后运行应用程序,结果是 the first character does not show

第一个中文字符不正确。但是如果添加英文字符,例如a然后显示正确: the correct image precede with a

因此我们可以排除字体问题。为什么第一个角色在没有英文字符的情况下拒绝显示呢?

1 个答案:

答案 0 :(得分:0)

std :: cout:u8"你确定要这么做吗"之后的字符串不是UTF-8编码。

对于UTF-8编码,请参阅http://en.wikipedia.org/wiki/UTF-8

字符串的UTF-8代码是:

E4 BD A0 E7 A1 AE E5 AE 9A E8 A6 81 E8 BF 99 E4 B9 88 E5 81 9A E5 90 97