【发布时间】:2010-09-24 19:20:27
【问题描述】:
C++ 源代码的标准编码是什么? C++ 标准是否对此有所说明?我可以用 Unicode 编写 C++ 源代码吗?
比如可以在cmets中使用汉字等非ASCII字符吗?如果是这样,是否允许完整的 Unicode 或只是 Unicode 的子集? (例如,那个 16 位的首页或其他名称。)
此外,我可以对字符串使用 Unicode 吗?例如:
Wstring str=L"Strange chars: â Țđ ě €€";
【问题讨论】:
-
RE: "不管它叫什么": From Wikipedia: 第一个平面,plane 0,基本多语言平面(BMP ) 包含几乎所有现代语言的字符,以及大量的符号。 BMP 的主要目标是支持统一先前的字符集以及用于书写的字符。 BMP 中分配的大多数代码点用于编码中文、日文和韩文(CJK)字符。
-
我有一个有趣的变种。我的日志中有一个 UTF-8 字符
µ显示为µ。我怀疑 GNU g++ 假定了 iso-8859-1 源代码并过度编码了二进制文件中的单字符两字节序列。实际上它理解源是基于语言环境的 UTF-8。日志包含正确的两字节序列。事实上,日志的另一部分包含杂散字节,这些字节在文件中引入了不符合 UTF-8 的字节序列。因此,编辑器 emacs 确定该文件实际上是 ISO-8859-1,并将两字节字符显示为两个单独的字符。修复那些杂散字节解决了问题。
标签: c++ unicode character-encoding standards