gpt4 book ai didi

c++ - 如何让 STL std::string 在 Windows 上使用 unicode?

转载 作者:可可西里 更新时间:2023-11-01 12:42:12 28 4
gpt4 key购买 nike

在我的公司,我们有一个跨平台(Linux 和 Windows)库,其中包含我们自己的 STL std::string 扩展,此类在字符串之上提供各种功能; split, format, to/from base64, 等等。最近我们被要求让这个字符串 unicode 变得“友好”,基本上它需要支持来自中文,日文,阿拉伯文等的字符。经过初步研究,这在 Linux 端似乎很好因为每件事本质上都是 UTF-8,但是我在 Windows 方面遇到了麻烦;有什么技巧可以让 STL std::string 在 Windows 上作为 UTF-8 工作吗?有可能吗?有没有更好的办法?理想情况下,我们会让自己基于 std::string,因为这是 Linux 中字符串类的基础。

谢谢,

最佳答案

你的问题中有几个误解。

  • C++ 和 STL 都不处理编码。

  • std::string 本质上是一个字节的字符串,而不是字符。因此,将 UTF-8 编码的 Unicode 填充到其中应该没有问题。但是,请记住,所有 string 函数也适用于字节,因此 myString.length() 将为您提供字节数,而不是字符数。

  • Linux 不是天生就是 UTF-8。现在大多数发行版默认为 UTF-8,但不应依赖它。

关于c++ - 如何让 STL std::string 在 Windows 上使用 unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257263/

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