c++ - 我如何能够在 1 字节的普通字符串中存储日文字符?

标签 c++ visual-c++ unicode ansi

  std::string str1="いい";
  std::string str2="الحانةالريفية";
  WriteToLog(str1.size());
  WriteToLog(str2.size());

我在日志文件中得到“2,13”,这是这些字符串中的确切字符数。但是日文和阿拉伯文字符如何适合一个字节。我希望 str.size() 应该返回字符串使用的字节数。

最佳答案

在我基于 UTF-8 的语言环境中,我分别得到 6 和 26 个字节。

您所使用的语言环境必须使用字符集的高 8 位部分来对这些非拉丁字符进行编码,每个字符使用一个字节。

如果您切换到 UTF-8 语言环境,您应该会得到与我一样的结果。

关于c++ - 我如何能够在 1 字节的普通字符串中存储日文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021656/

相关文章:

string - 在golang中存储unicode字符

python - 在 python 3 和 2 中工作的 Unicode 文字

c++ - 为什么在程序中调用这个拷贝构造函数?

c++ - 什么时候有人将 std::vector 定义为 thread_local?

c++ - 如何使用 _ZSTLsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.part.1 等名称重命名重复标签?

c++ - 利用 SSE 和其他 CPU 扩展

c++ - 在 VS 和 gcc 上计算的不同值

html - 隐藏文本的特殊 unicode/转义字符?

c++ - C++中按索引的模板函数

c++ - 不完整类型不允许错误