Visual Studio 2010是否支持Unicode中的C++源代码和字符串文字中的Unicode字符
Does Visual Studio 2010 Supports C++ Source Code in Unicode with Unicode Char in String Literal
我想直接将非ASCII Unicode字符嵌入字符串文字中,并在printf中使用它们。这意味着我的源代码必须保存在utf-8或utf-16中。Visual Studio 2010支持编辑和保存任何一种格式的C++源文件。但是当编译&执行时,它不会产生正确的unicode字符。编译器是否支持嵌入unicode字符的字符串文字?
例如
wprintf(L" chinese characters:中文字n"); the trailing chinese characters cannot be displayed
我没有中文版的Windows可供测试,所以这完全是猜测。
控制台和文件输出函数知道文件不是用UTF-16编码的,所以它们试图在输出之前将字符转换为代码页。正如默认的语言环境是"C"而不是基于系统设置的任何语言一样,默认的代码页可能也是不合适的,不包括中文字符。
有一个函数SetConsoleOutputCP
用于更改控制台的代码页。目前尚不清楚此函数是否会更改实际控制台窗口使用的代码页,或者它是否只影响程序中从Unicode的转换。
测试宽文本的简单方法是跳过printf
的格式化部分,直接将字符串提供给OS:WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), L" chinese characters:中文字", ...
。
您可能需要#pragma setlocale。
相关文章:
- 如何将unicode字符串从C++传递到delphi
- 将 unicode 字符串与 c ++ 符号进行比较?
- C++:Unicode 字符串文字的可移植性
- 如何使用 CTypes 将 wchar_t** - 以空结尾的 UNICODE 字符串数组 - 返回到 Python 脚
- Xamarin Android:在 C++ 中将字符串从 C# 封送到 Unicode 字符串的正确方法是什么?
- 如何在 python 包装中使用 unicode 字符串用于带有 cython 的 c++ 类?
- 如何使用poco :: logger记录Unicode字符串
- 如何将 Unicode 字符串连接成字符串以传递到 mysql 调用中
- Unicode字符串Visual C 构造函数
- 如何将 (ICU4C) Unicode 字符串逐个字符复制到另一个 Unicode 字符串
- 如何从Windows中的进程中读取Unicode字符串
- 如何在Visual C 中的BSTR和32位Unicode字符串之间进行转换
- C 编译器如何从UTF8源文件中生成Unicode字符串文字
- 如何检测终端中的unicode字符串宽度
- 如何在字符级别操作Unicode字符串
- 获取Crypto++中Unicode字符串的SHA1
- 将 unicode 字符串转换为字符串
- c++Unicode字符串与易混淆字符的比较.例如(U 0054)应为==(U03A4)等
- 如何在带L(或不带L)的变量中传递unicode字符串
- C++中的Unicode字符串处理