windows下多位元組和寬位元組轉換

2021-09-08 12:05:47 字數 675 閱讀 8874

先簡單說下什麼是多位元組和寬位元組。

多位元組是指使用多個位元組(1-3)表示乙個字元。比如gbk使用英文佔乙個位元組,中文佔2個,這個就是多位元組了。utf-8是使用1-3個位元組表示字元。還有big5等等。

寬位元組一般是固定使用2個位元組表示乙個字元,utf-16(一般就是指unicode)。

1、multibytetowidechar 多位元組轉寬位元組

2、widechartomultibyte 寬位元組轉多位元組

3、和utf8有關的字元轉換,**頁codepage=cp_utf8。

4、**頁codepage=cp_acp,一般使用系統當前使用的**頁。比如在簡體中文(中國等)區域下,cp_acp表示gbk編碼的936**頁。在正體中文(台灣),cp_acp表示big5編碼的950**頁。

5、codepage**頁一般填寫的是多位元組**頁。

在程式中,一般最好使用unicode字符集顯示字元,windows的核心就是用unicode編碼的,unicode字符集包含了世上大多數字元。unicode在windows下的不同本地環境下都能是正常顯示。

但是在使用字串和其他程式程序(本地程序或者遠端程序)進行互動時,最好使用utf8編碼字元。

原因是:utf8可以表示最多的字元,所有系統通用,且不像寬位元組一樣每個字元都要兩個位元組表示,數字和字母等都是使用乙個位元組表示,有時可以節省大量字串流。

寬位元組 多位元組 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...

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

感覺比較混亂,學習了一通,做個記錄。著急在windows下面用的話,可以先看這個 vc windows 平台字元透明程式設計大總結 寬字串與單位元組字串之間的轉換。c 標準裡面已經提供了 寬位元組轉單位元組 size twcstombs char mbstr constwchar t wcstr s...

關於寬位元組和多位元組之間的轉換

之前也遇到好多次亂碼問題,但都沒有整理過,每次都是重新翻閱資料,現在做個整理歸納,方便自己或者其他朋友以後查閱瀏覽 多餘廢話就不說了,直接貼 char convertgbktoutf8 const char pszgbk memset wszutf8,0,len 2 2 multibytetowid...