如何在C ++ VS中使用原始字符串文字(编码问题)

时间:2019-07-11 07:41:19

标签: c++ string literals

我也有英文版的Win10和英文版的MSVS 2019。当我使用俄语版本时,像cout << R"(Привет, мир!)" << endl;这样的结构可以正常工作(我可以用母语看到文本)。作为变体,我可以使用setlocale(LC_ALL,"Russian");表达式,它也可以工作。 在英语版本中,仅使用第一个或第二个表达式都无济于事。我知道了 ?????????代替预期的文字。 cout << u8R"(Привет, мир!)" << endl;之类的技巧也无济于事。而且,当我保存或编译项目时,VS要求我选择abolut编码,即保存页面的内容。我试图随机选择一些(UTF,1251、1252 ...),但没有成功。 我该如何解决这个问题? 附言在在线编译器(例如https://www.jdoodle.com/online-compiler-c++)中,该问题不会持续!

1 个答案:

答案 0 :(得分:0)

我不了解,这个问题不在于字符串编译或运行时错误,而在于控制台本地化。 控制台中的CHCP 65001解决了该问题。

cout << u8R“(Порядок。Спасибо)”;