相关疑难解决方法(0)

如何在C++中正确使用UTF-8上的std :: string?

我的平台是Mac和C++ 11(或更高版本).我是一名C++初学者,正在处理一个处理中文和英文的个人项目.UTF-8是此项目的首选编码.

我在Stack Overflow上阅读了一些帖子,其中许多人建议std::string在处理UTF-8时使用,并避免wchar_t因为char8_tUTF-8现在没有.

然而,他们没有谈论如何正确地与像函数处理str[i],std::string::size(),std::string::find_first_of()或者std::regex因为这些功能通常面临UTF-8时,返回意外的结果.

我应该继续std::string或切换到std::wstring?如果我应该std::string坚持下去,那么处理上述问题的最佳做法是什么?

c++ string c++11

57
推荐指数
4
解决办法
2万
查看次数

在C++ 11中是否需要u8字符串文字

来自维基百科:

为了在C++编译器中增强对Unicode的支持,char类型的定义已被修改为至少为存储UTF-8的8位编码所需的大小.

我想知道这对于编写便携式应用程序究竟意味着什么.写这个有什么区别吗?

const char[] str = "Test String";
Run Code Online (Sandbox Code Playgroud)

或这个?

const char[] str = u8"Test String";
Run Code Online (Sandbox Code Playgroud)

是否有任何理由不在代码中的每个字符串文字中使用后者?

当TestString中有非ASCII字符时会发生什么?

c++ utf-8 literals string-literals c++11

21
推荐指数
4
解决办法
2万
查看次数

为什么在c ++ 20中不推荐使用std :: filesystem :: u8path?

在c ++ 17中引入,std::filesystem::u8path似乎在c ++ 20中被弃用了.

这个选择的原因是什么?我应该在c ++ 17中使用什么?我应该在c ++ 20中使用什么?

c++ c++20

15
推荐指数
1
解决办法
912
查看次数

c++中的std::string有编码格式吗

我想找到关于 std::string 的默认编码格式。
我试图找出编码格式,但我不知道。c++ 中的 std::string 有编码格式吗?

c++11

3
推荐指数
1
解决办法
1231
查看次数

标签 统计

c++ ×3

c++11 ×3

c++20 ×1

literals ×1

string ×1

string-literals ×1

utf-8 ×1