為了支援unicode編碼,需要多位元組與寬位元組之間的相互轉換。這兩個系統函式在使用時需要指定**頁,在實際應用過程中遇到亂碼問題,然後重新閱讀《windows核心程式設計》,總結出正確的用法。
widechartomultibyte的**頁用來標記與新轉換的字串相關的**頁。
multibytetowidechar的**頁用來標記與乙個多位元組字串相關的**頁。
常用的**頁由cp_acp和cp_utf8兩個。
使用cp_acp**頁就實現了ansi與unicode之間的轉換。
使用cp_utf8**頁就實現了utf-8與unicode之間的轉換。
下面是**實現:
1. ansi to unicode
wstring ansitounicode( const string& str )
2. unicode to ansi
string unicodetoansi( const wstring& str )
3. utf-8 to unicode
wstring utf8tounicode( const string& str )
4. unicode to utf-8
string unicodetoutf8( const wstring& str )
C 多位元組與寬位元組之間的相互轉換
c 基本資料型別中表示字元的有兩種 char wchar t。char叫多位元組字元,乙個char佔乙個位元組,之所以叫多位元組字元是因為它表示乙個字時可能是乙個位元組也可能是多個位元組。字元陣列可以表示乙個字串,但它是乙個定長的字串,我們在使用之前必須知道這個陣列的長度。為方便字串的操作,stl定...
多位元組與寬位元組之間的轉換
1 函式 widechartomultibyte 轉換 unicode 到 mbcs。lpcolestr lpw l hello,你好 size t wlen wcslen lpw 1 寬字元字元長度,1表示包含字串結束符 int alen widechartomultibyte 第一次呼叫,計算所...
VC 多位元組寬字元相互轉換
多位元組寬字元相互轉換用的較多,自己寫了一點留作以後參考。string str cout please input chinese str setlocale lc ctype,chs const char cstr1 str.c str int len 2 sizeof cstr int wlen...