開發平台(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<<"