在 C 中打印 Unicode 字符
尝试打印具有 Unicode 值的字符时,例如西里尔小写字母 Ef (U 0444) ,以下代码可能无法正常工作预期:
int main() { wchar_t f = '1060'; cout << f << endl; }
解决方案:
要正确打印 Unicode 字符,有以下几种方法:
通用角色名称(UCN):
文字字符(如果源支持编码):
对于终端打印,以下代码假设执行编码和终端模拟器之间兼容:
#include <iostream> int main() { std::cout << "Hello, ф or \u0444!\n"; }
对于Windows,建议将输出文件句柄设置为 UTF-16 模式:
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
对于可移植代码,可以使用以下技术:
#include <iostream> #include <vector> int main() { std::vector<wchar_t> v = {0x444}; std::wcout.write((const wchar_t*)&v[0], 1); }
以上是如何在 C 中正确打印 Unicode 字符?的详细内容。更多信息请关注PHP中文网其他相关文章!