开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++(2013, x86 amd64), GCC(Cygwin64)
问题(Question):
想了解编译器对非英文的c-string是如何编码,所以写了下列code,
方法是将两个中文字"电脑"写入程式码,以char wchar_t两种方式存入
执行时让资料以hex值output,观察编码情形
我的问题是:
g++以char储存所编出来的码,我找不到它是什么编码方式,
一个中文字占了3个char,这是什么? UTF-24?????
结果(Wrong Output):
char wchar_t
msvc2013 x86及amd64 b9 71 b8 a3 96fb 8166
(Big5 "电"0xb971 (Unicode "电"0x96fb
"脑"0xb8a3) "脑"0x8166)
gcc on cygwin64 e9 9b bb e8 85 a6 96fb 8166
(?????) (Unicode)
程式码(Code):(请善用置底文网页, 记得排版)
#include <iostream>
#include <sstream>
#include <string>
#include <cstring>
#include <cwchar>
#include <cstdint>//-std=c++11
using namespace std;
int main()
{
const char *c="电脑";
const wchar_t *wcl=L"电脑";
string buffer;
ostringstream oss;
cout<<"