主流编译器就是 utf-16 和 utf-32 两种,和实现有关,但和源代码编码无关。
c++主流实现的 input encoding 和 exec encoding 是解耦的,也都可以通过选项改,编译器内码都是某种 unicode。比方说 msvc,只要带 bom,编译器就自动识别 utf-8 和 utf-16,不带就默认 acp,但对 char[] 字面量就都默认 acp 除非设置 exec enc,而 L 字面量都是 utf-16,u8 当然都是 utf-8,都和源代码编码无关。
【 在 hgoldfish 的大作中提到: 】
: 这个在标准里面并没有说明是存储在 EXE 里面的是 GBK 还是 UTF16,
:
: 跟编译器的实现有关。跟源代码也有关。
: ...................
--
FROM 114.249.193.*