c++ - Windows 中的 4 字节字符串?

标签 c++ unicode

例如,我有一个程序可以对 std::string 中的 char 类型执行各种操作

if (my_string.front() == my_char) {
    // do stuff with my_string
}

我正在寻找一些关于如何让我的程序支持 Unicode 的实用建议。我需要能够将字符与字符进行比较,这意味着需要 4 字节字符,这样即使是最大的 Unicode 字符也可以无损地处理。

我在使用 GCC 编译器的 Windows 上阅读,在这种情况下,std::wstring 是 2 个字节。 C++11 有 4 个字节的 std::u32string,但它似乎在很大程度上不受标准库的支持。

在这种情况下,最简单的解决方案是什么?

最佳答案

即使你有一个 uint32 字符串,你也不能只是一个一个地比较这些整数。您必须先规范化字符串。由于规范化并不简单,您最终将使用像 ICU 这样的库。所以你可以直接尝试直接使用它:)

http://site.icu-project.org/

关于c++ - Windows 中的 4 字节字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181970/

相关文章:

visual-studio-2010 - 使用 unicode 保存文件时 Emacs 加载字符集映射失败

c++ - C++ 中的安全引用(具有通知语义的单一所有权指针)

c++ - gcc 编译错误,对象初始化解释为函数指针?

c# - 来自带有特殊表情符号的字符串的子字符串,String.IndexOf 返回 -1

unicode - 什么是统一码?以及编码如何工作?

c++ - 我可以将 libxml2 与 unicode 一起使用吗?

Android 2.3 Unicode 支持

c++ - 如何在同一个类中使用重载运算符 []?

c++ - 模板模拟上的 EXPECT_CALL

c++ - 为什么Rcout和Rprintf在多线程时会导致堆栈限制错误?