我昨天做了一个测试
你好 这样2个中文
gb2312 码是 C4E3 BaC3
Utf-8 e4 bd a0 e5 a5 bd
unicode-16 60 F 7D 59
这样一行代码
char * p = "你好"
vc2005 下编译
源文件使用gb2312
内存中保持为 gb2312
源码为utf-8 BMO
内存中为 GB2312
源码为UTF-8 without BMO
内存为UTF-8
源码为Unicode
内存为 GB2312
wchar_t *p = L"你好"
这样一句
源文件使用gb2312
内存中保持为 unicode编码
源码为utf-8 BMO
内存中为 unicode编码
源码为UTF-8 without BMO
内存为??? 63 bd b2 72 bd 30 ???
源码为Unicode
内存为 unicode 编码
在linux 下
char *p = " 你好"
首先unicode 编码的文件 我无法编过。
utf-8 BMO 也无法编译
gb2312 是可以的。
需要设置locale zh_CN.gb2312
内存里面保存的是 gb2312
utf-8
设置成zh_CN.UTF-8 可以编过
可以正常显示
内存里面是 Utf-8编码
wchar_t p =l"你好“
gb2312 utf-8 bmo unicode 都无法编译
utf-8 可以编译
内存里面放置的是 utf-32 编码
内存是unicdoe 的utf-32 编码
所以希望用一种源码格式 跨平台 跨编译器 问题挺多的。