C++中漢字與unicode碼的轉換
阿新 • • 發佈:2018-12-27
已知一個漢字的unicode碼(例如-20319),可以通過以下方法得到該unicode碼對應的漢字:
1,宣告一個3位元組長的字元陣列,例如char a[3];
2,對該陣列賦值為char a[3]={unsigned(-20319)/256,unsigned(-20319)%256,0};
3,輸出直接為cout<<a<<endl;即可;
4,也可以把字元陣列直接賦值給字串string,例如string str(a);。
下面對步驟2進行解釋,unicode碼為16位(unsigned short),而字元char型別僅有8位,步驟2完成的功能就是把unicode前8位和後8位分別存放在一個字元陣列不同的2位元組中,由此可以想像,char型的字串儲存漢字時也應該是這樣的。結尾的0表示陣列的結束。
查一個漢字的unicode碼更簡單,宣告一個wchar_t變數,並直接賦值一個漢字,例如wchar_t ch='阿';,顯示時直接cout<<ch<<endl;即可。不過編譯時可能給警告。輸出的檔案中和普通操作一樣。