【问题标题】:Create vector with Farsi names. C++创建带有波斯语名称的向量。 C++
【发布时间】:2018-09-20 05:59:04
【问题描述】:

我的目标是创建一个带有波斯语名称的std::vector<std::string>。但是当我编译这个我得到这个错误:

这似乎是一个 unicode 问题。有什么建议可以解决这个问题吗?

【问题讨论】:

  • 这不是错误。你试过按Yes 吗?
  • 我有时可能听起来很尖刻,但意图是完全严肃的:据我了解,这个对话框不是错误。它要求您将文件保存为 Unicode 以维护您的数据。当然,您可能已经尝试过,但这从您的问题中并不明显,因此我要求澄清。顺便说一句,当有人告诉我停止贡献时,我往往会感到不安(虽然愚蠢是你无法判断的,所以我真的不在乎)

标签: c++ string unicode farsi


【解决方案1】:

Microsoft 的 Visual C++ 编译器does support Unicode source code files。具体来说,它接受UTF-8(需要byte order mark)或UTF-16

源代码文件

现在在标识符、宏、字符串和字符文字以及 cmets 中支持 Unicode 字符。现在还支持通用字符名称。

Unicode 可以按以下编码输入到源代码文件中:

UTF-16 little endian 带或不带字节顺序标记 (BOM)

UTF-16 大端(带或不带 BOM)

带有 BOM 的 UTF-8

请特别注意,对于 UTF-8,字节顺序标记是必需的。屏幕截图中的对话框是 Visual Studio 编辑器检测到您输入了非 ASCII 字符并询问您是否要将源代码文件转换为 UTF-8 或 UTF-16(不确定默认值是什么,但我d 猜测 UTF-8)。如果您单击“是”,它将使用 UTF-8 字节顺序标记 (BOM) 保存文件,并且一切正常。

【讨论】:

    猜你喜欢
    • 2020-07-19
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多