Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VisualStudio2010是否支持C++;Unicode源代码,Unicode字符为字符串文字_C++_Visual Studio 2010_Unicode String - Fatal编程技术网

C++ VisualStudio2010是否支持C++;Unicode源代码,Unicode字符为字符串文字

C++ VisualStudio2010是否支持C++;Unicode源代码,Unicode字符为字符串文字,c++,visual-studio-2010,unicode-string,C++,Visual Studio 2010,Unicode String,我想在字符串文本中直接嵌入非ASCII Unicode字符,并在printf中使用它们。这意味着我的源代码必须保存在utf-8或utf-16中。VisualStudio 2010支持以任何格式编辑和保存C++源文件。但在编译和执行时,它不会生成正确的unicode字符。编译器是否支持嵌入unicode字符的字符串文字 e、 g 测试宽文本的简单方法是跳过printf的格式化部分,将字符串直接发送到操作系统:WriteConsoleW(GetStdHandle(STD\u OUTPUT\u HAN

我想在字符串文本中直接嵌入非ASCII Unicode字符,并在printf中使用它们。这意味着我的源代码必须保存在utf-8或utf-16中。VisualStudio 2010支持以任何格式编辑和保存C++源文件。但在编译和执行时,它不会生成正确的unicode字符。编译器是否支持嵌入unicode字符的字符串文字

e、 g


测试宽文本的简单方法是跳过
printf
的格式化部分,将字符串直接发送到操作系统:
WriteConsoleW(GetStdHandle(STD\u OUTPUT\u HANDLE),L“汉字:中文字", ...

测试宽文本的简单方法是跳过
printf
的格式化部分,将字符串直接发送到操作系统:
WriteConsoleW(GetStdHandle(STD\u OUTPUT\u HANDLE),L“汉字:中文字“,…

有可能您需要的是#pragma setlocale。

有可能您需要的是#pragma setlocale。

我没有中文版本的Windows可供测试,所以这完全是猜测

控制台和文件输出函数知道文件不是用UTF-16编码的,因此它们会在输出前尝试将字符转换为代码页“而不是基于您的系统设置,因此默认代码页也可能是不合适的,不包括中文字符


有一个函数可以更改控制台的代码页。不清楚此函数是否会更改实际控制台窗口使用的代码页,或者它是否只影响程序中Unicode的转换。

我没有中文版本的Windows可供测试,因此这完全是猜测

console和file output函数知道文件不是用UTF-16编码的,所以它们会在输出之前尝试将字符转换为代码页。正如默认的语言环境是“C”而不是基于您的系统设置,因此默认代码页也可能是不合适的,不包括中文字符

有一个函数可以更改控制台的代码页。不清楚此函数是否会更改实际控制台窗口使用的代码页,或者它是否只影响程序内从Unicode进行的转换。

可能重复的
wprintf(L" chinese characters:中文字\n"); the trailing chinese characters cannot be displayed