gpt4 book ai didi

c++ - Unicode std::string 类替换

转载 作者:可可西里 更新时间:2023-11-01 15:38:19 24 4
gpt4 key购买 nike

我正在寻找有关 unicode 感知 std::string 库替换的建议。我有一堆使用 std::string 及其迭代器等的代码,现在想支持 unicode 字符串(首选免费或开源实现,正则表达式功能会很棒!)。

此时我不确定我是否需要完全重写,或者我是否可以放弃一个支持所有 std::string 接口(interface)的新字符串库。 Unicode 世界似乎非常复杂,我只是想在我的应用程序中启用它,而不必了解它的每个方面。

顺便说一句,索引运算符在必须传回对 1、2、3 或 4 结构的引用时如何工作,理论上可以更改为 1、2、3 或 4 字节结构。如果传递了更大或更小的值,内部数据表示是否会原地来回移动?

最佳答案

如果您确定您的 std::string 包含什么,则不需要完全重写。例如,您可以假设(并转换输入以确保)您的 std::string 包含 UTF8 编码的字符串(对于那些需要本地化的字符串)。不要忘记 std::string 只是原始数据的容器,它与编码无关(即使在 C++0x 中,这也只是一种可能性,而不是必需的)。

然后当您将文本传递给其他需要不同编码的库时,您可以使用像 UTF8CPP 这样的库来转换为所需的编码(但大多数时候这些库会自己完成)。

这样就很简单了。在您的代码中使用标准 std::string 的 UTF8,允许将 unicode 字符串传递给其他所有内容(必要时进行转换)。

在 boost 社区邮件列表中已经有很多关于这个的讨论。也许阅读它(如果您有足够的时间......)可以帮助您了解其他可能的解决方案。

关于c++ - Unicode std::string 类替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com