【发布时间】:2014-12-12 05:32:34
【问题描述】:
我一直在尝试理解C++中operator<<的工作原理std::cout。我发现它可以打印 UTF-8 符号,例如:
简单的程序是:
#include <iostream>
unsigned char t[] = "ي";
unsigned char m0 = t[0];
unsigned char m1 = t[1];
int main()
{
std::cout << t << std::endl; // Prints ي
std::cout << (int)t[0] << std::endl; // Prints 217
std::cout << (int)t[1] << std::endl; // Prints 138
std::cout << m0 << std::endl; // Prints �
std::cout << m1 << std::endl; // Prints �
}
产生输出的终端如何确定它必须将t解释为单个符号ي,而不是两个符号� �?
【问题讨论】:
-
你需要定义这段代码执行的环境
标签: c++ utf-8 character-encoding char