支持C++中的Unicode
Unicode in C++ support
有一些关于这件事的帖子,但我想仔细检查一下。Joel Spoolsky的文章(链接)中写道:
在C++代码中,我们只是将字符串声明为wchar_t("wideChar")的char,并使用wcs函数而不是str函数(用于例如wcscat和wcslen而不是strcat和strlen)。创建C代码中的UCS-2字符串,您只需在其前面加一个L,如下所示:L"你好"。
我的问题是:上面写的内容是否不足以支持C++应用程序中的Unicode?
我的困惑始于我无法输出简单的文本,比如(俄语):
wcout<<L"логин";
在控制台中。
此外,最近我看到一些为嵌入式设备编写的代码,其中一个人使用wchar_t处理我认为与Unicode相关的字符串。
非常感谢您的帮助。
这在linux、utf8机器上的C++11中工作:
#include <iostream>
int main(int, char**) {
std::cout << u8"Humberto Massa Guimarãesnлогинn";
}
首先,您不能在命令行中打印非英语字符
第二,简要介绍;UNICODE为每个字符使用两个字节,char使用一个字节。例如,字符串"ABC"将以字符形式存储为ABC\0(3字节+end_of_string_character)
但在UNICODE中将存储为A\0B\0C\0\0\0(6+end_of_string_character,与其他字符一样是两个字节)
为了查看一些文本,我建议您使用MessageBoxW:
首先包括windows头文件:#include <windows.h>
第二次使用MessageBoxW API函数:
MessageBoxW(0, L"UNICODE text body", L"title", MB_ICONINFORMATION);
相关文章:
- 在将 unicode 替换为C++字符串中的空格时出现分段错误
- 如何替换/忽略 C stdio.h getline() 中的无效 Unicode/UTF8 字符
- Linux Ubuntu 中的文件内输出 unicode 符号
- C++20 中的严格别名规则是否允许标准 c++ unicode 字符和下划线类型之间"reinterpret
- 将 Unicode 字符存储在.txt文件中的新行中
- 从终端 C++ 中的字符串中打印出 unicode 字符
- 将字符与 Qt 中的 Unicode 进行比较
- Unicode - ICU 库 - 获取 UnicodeString 中的代码点计数
- 字符数组中的滤波器unicode字符
- 使用库中的Unicode/Multibyte版本的混合
- 将std::string中的迭代字符与unicode C++进行比较
- 如何从Windows中的进程中读取Unicode字符串
- 如何从 c++ 或 cocos2dx 中的表情符号中获取 unicode
- 如何使用Xcode中的Unicode打印字符╔(和其他字符)
- 如何在Visual C 中的BSTR和32位Unicode字符串之间进行转换
- 从包含Unicode字符的文件中读取
- 如何检测终端中的unicode字符串宽度
- 如何处理JSON字符串中的unicode值
- VS2013 Unicode中的C++多行CString文字
- Visual Studio 2010是否支持Unicode中的C++源代码和字符串文字中的Unicode字符