win32中的寬字符

win32中的寬字符

寬字符

數(shù)據(jù)類型 容器、模板
ASCII 一個字符 一個字節(jié)
GB碼(擴(kuò)展了的ASCII) 英文字符 一個字節(jié)
GB碼 中文字符 兩個字節(jié)
UNICODE字符集(unicode編碼實際指的是utf-16) 常用字符 兩個字節(jié)

寬字符: 用多個字節(jié)來表示的字符稱之為寬字符(只要不是以單字節(jié)存儲都可稱為寬字符)

注:寬字符不等同與UTF-16更不等同與UNICODE

wchar_t 寬字符類型

C/C++中對寬字符定義了一個類型 wchar_t 用來存儲兩字節(jié)寬度的寬字符

常用的字符串操作字符

strlen()        wcslen()
strcmp()        wcscmp()
strcat()        wcscat()
strcpy()        wcscpy()


wchar_t arr[] = L"Hello World";
printf("%d \r\n",wcslen(arr));

在同一個項目工程里務(wù)必只使用一種編碼規(guī)則,一面發(fā)生管理紊亂

Windows定義了一系列新的類型

原生 win32
typedef char CHAR
typedef short SHORT
typedef int INT
typedef long LONG
typedef unsigned long DWORD
typedef int BOOL
typedef unsigned char BYTE
typedef unsigned short WORD
typedef float FLOAT

不同項目間合作 單字符和寬字符的問題

常規(guī)解決方案(不推薦):

  1. 事先約定使用同一種編碼規(guī)范

  2. 在接口處通過某些函數(shù)完成兩種編碼的轉(zhuǎn)換

    MultiByteToWideChar()
    WideCharToMultiByte()
    

微軟爸爸的解決方案:

TCHAR 類型

VC6中 :定義

#ifdef UNICODE
    typedef wchar_t TCHAR;
#else
    typedef unsigned char TCHAR;

使用

TCHAR arr[] = TEXT"Hello World";
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • UTF-8 編碼提供了一種簡便而向后兼容的方法, 使得那種完全圍繞 ASCII 設(shè)計的操作系統(tǒng), 比如 Unix,...
    謝大見閱讀 4,977評論 0 3
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,375評論 0 7
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,333評論 6 13
  • 關(guān)鍵詞:回憶、八音盒、家鄉(xiāng)(三選二) 又到了最不喜歡的節(jié)日——清明,陳君不明白,為什么明明是悲傷的習(xí)俗,卻要以放假...
    yhlbksld閱讀 102評論 0 1
  • 程輝事到如今只想求紅舒饒他一命,但不幸的是,在剛才的搏斗中,他的舌頭被傷到,已經(jīng)不能清晰自如地表達(dá)自己的意思。 您...
    穆慈安閱讀 704評論 87 15

友情鏈接更多精彩內(nèi)容