c++ - 如何按字符而不是代码单元(UTF-8、UTF-16)计算字符串的长度?
问题描述
我有两个简单的“UTF-8,16”示例来获取文本的长度,如下所示:
// UTF-8
string str = u8"az";
cout << str.length() << endl; // The reulst: 6
// UTF-16
wstring str= L"az"; // Also "u16string"
cout << str.length() << endl; // The reulst: 4
第一个示例的长度为“6”,第二个示例的长度为“4”,但它们都应该只是“3”,因为它必须作为字符处理。
我知道发生这种情况是因为它通过“代码单元”计算字符串的长度。
我有办法获得正确长度的“UTF-8,16”字符串吗?
解决方案
推荐阅读
- javascript - 如何在控制台中使用 JS 在 Angular 中手动选择选项?
- javascript - Google 跟踪代码管理器中的代码仅在调试/预览模式下工作
- postgresql - 无法使用 ip 地址从本地 psql 连接到 postgresql
- python-3.x - 如何从数据类实例列表中填充 QtableView
- python - 如何将异常传递给 Django 中的 500 错误处理程序
- windows - 如何在 Linux 子系统中远程控制安装在 Windows 上的 Vagrant?
- javascript - 如何在 React 中显示点击按钮的名称?
- r - 将数值数据转换为 R 中的分类数据
- python - 如何防止 multiprocessing.pool 消耗我的所有内存?
- javascript - 使用正则表达式搜索