寬位元組 多位元組 單位元組 的問題

2021-06-21 14:00:25 字數 2100 閱讀 1007

感覺比較混亂,學習了一通,做個記錄。

著急在windows下面用的話,可以先看這個:

vc++ windows

平台字元透明程式設計大總結

寬字串與單位元組字串之間的轉換。

c++標準裡面已經提供了:

寬位元組轉單位元組

size_twcstombs(char*mbstr

,constwchar_t*wcstr

,size_t

count

);

單位元組轉寬位元組

size_tmbstowcs(wchar_t*wcstr

,constchar*mbstr

,size_t

count

);

只能乙個乙個的轉換,也就是說一次只能轉換乙個字元

微軟的函式

寬位元組轉多位元組

:widechartomultibyte

多位元組轉寬位元組

:multibytetowidechar  

寬字串 轉換為 char字串 的例子。

bstr devname;   //olewchar 其實就是wchar

char *name=null;

pncp->get_name(&devname);

dwordn=widechartomultibyte(cp_oemcp,null,devname,-1,null,0,null,false);

name=new char[n];

widechartomultibyte(cp_oemcp,null,devname,-1,name,n,null,false);

cout將 char字串 轉換為 unicode字串,也就是寬字元。

char stext[20] = ;

dword dwnum = multibytetowidechar (cp_acp,0, stext, -1, null, 0);

wchar_t *pwtext;

pwtext = new wchar_t[dwnum];

multibytetowidechar (cp_acp, 0, pwtext, -1,stext, dwsize);

if(!pwtext)

delete pwtext;

unicode和多位元組字符集 (mbcs) 雜談

位元組碼問題--wchar和char的區別以及wchar和char之間的相互轉換字元編碼轉換等方法及函式介紹

該文看的出來非常的用心的總結了。而他附錄的幾個內容也是可供學習的:

網上不錯的資源:

c/c++ 程式設計中多國語言處理

徹底解密c++寬字元:1、從char到wchar_t

徹底解密c++寬字元:2、unicode和utf

徹底解密c++寬字元:3、利用c執行時庫函式轉換

徹底解密c++寬字元:4、利用codecvt和use_facet轉換

徹底解密c++寬字元:5、利用fstream轉換

徹底解密c++寬字元:6、國際化策略

c 原始檔內的中文(1)

c 原始檔內的中文(2)

utf-8 and unicode faq for unix/linux

寬位元組 多位元組 mbstowcs wcstombs

函式 size t wcstombs char dest,const wchar t src,size t n wide character to a multibyten 被寫入到 str 中的最大位元組數 size t mbstowcs wchar t dest,const char src,s...

VS2008多位元組與單位元組問題

在vs2008中使用sprintf遇到問題 tchar name 20 char sql 20 getdlgitem idc name getwindowtext name,20 sprintf sql,s name 程式執行後在sql怎麼也只能得到乙個字元,將name改為cstring型別同樣有此...

多位元組與寬位元組之間的轉換

1 函式 widechartomultibyte 轉換 unicode 到 mbcs。lpcolestr lpw l hello,你好 size t wlen wcslen lpw 1 寬字元字元長度,1表示包含字串結束符 int alen widechartomultibyte 第一次呼叫,計算所...