青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數(shù)據(jù)加載中……

C++的三種字符編碼方式

c++通常使用的是三種編碼方式,分別是SBCS(single byte character set),MBCS(multi-byte characterset)Unicode字符集。SBCS是一個字節(jié)一個字符,MBCS是幾個字節(jié)一個字符,可能是一個,兩個,三個不等,但是實際上,絕大多數(shù)時候使用兩個字節(jié)的,所以有時候看到DBCS(double-byte character set)代替MBCS也不奇怪;Unicode一律是兩個字節(jié)編碼。在windows nt內核中,API一律使用的是unicode編碼,所以如果你在編寫軟件過程中使用非unicode編碼方式,系統(tǒng)也會自動轉換成unicode執(zhí)行,然后返回的結構再轉換為你使用的類型。單字節(jié)表示用charunicode使用wchar_t.我們是在單字節(jié)的光芒下成長起來的,一時間完全拋棄單字節(jié)未免難以接受,但是有些時候我們又不可避免的需要使用unicode字符集合,那么ms提供的解決辦法是泳宏:TChar

我們看看他的定義:

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

ok,一切問題都解決了,我們只需要定義UNICODE就一樣使用wchar_t,是很方便。另外,在windowsCOM中使用的一律是unicode,但是MFC默認的確實MBCS,所以你用MFC寫的類庫如果放到了COM下,有些字符的格式化方式或者返回值錯誤的,原因就是com一律使用unicode,而unicode使用wchar_t('00')結尾,char卻是使用'0'結尾的。一般情況下,普通字符需要加載_T宏才能正常運行,比如MFC中你寫道S = "FSDFSDF",那么該類轉到COM下,需要寫S = _T("FSDFSDF");才可以。我們可以想象宏_TTCHAr的功能一樣,如果使用UNICODE就自動在constant string前面加上L,否則就直接使用。

我們說一些小問題:

VC6生成的console application
int main(int argc, char* argv[])

VS C++ 2005生成的是

int _tmain(int argc, _TCHAR* argv[])

顯然,用_tmain更好,why?

You can also use _tmain, which is defined in TCHAR.h. _tmain will resolve to main unless _UNICODE is defined, in which case _tmain will resolve to wmain.(http://msdn2.microsoft.com/en-us/library/6wd819wh.aspx#).

我們也會常常看到如下一些字符類型,

WCHAR wchar_t wchar_t
LPSTR zero-terminated string of char (char*) zero-terminated string of char (char*)
LPCSTR constant zero-terminated string of char (const char*) constant zero-terminated string of char (const char*)
LPWSTR zero-terminated Unicode string (wchar_t*) zero-terminated Unicode string (wchar_t*)
LPCWSTR constant zero-terminated Unicode string (const wchar_t*) constant zero-terminated Unicode string (const wchar_t*)
TCHAR char wchar_t
LPTSTR zero-terminated string of TCHAR (TCHAR*) zero-terminated string of TCHAR (TCHAR*)
LPCTSTR constant zero-terminated string of TCHAR (const TCHAR*) constant zero-terminated string of TCHAR (const TCHAR*)
C
一般代表constantP代表指針,LP代表長指針,W代表寬字符,也就是UNICODE,這下是不是都能明白這些是干什么的了?

我們也會常常看到_mbsstr()這樣的函數(shù),這就是MBCS字符編碼的函數(shù),當然可以處理SBCS編碼,但是反之卻不行。所以為了保險起見,我們可以使用_mbsstr代替strstr,但是如果程序只是處理SBCS,那么顯然又影響效率,所以到底用什么方式同時滿足效率和可移植性,自己掂量著辦吧。

以后使用C++編寫程序,如果出現(xiàn)亂碼,首先檢查C++的編碼類型,而且一般情況下都是結束符號沒有弄對,SBCSMBCS都是以單字節(jié)0結尾,UNICODE是以雙字節(jié)00結尾的。

 

posted on 2008-11-07 23:27 肥仔 閱讀(989) 評論(0)  編輯 收藏 引用 所屬分類: 字符編碼

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲大黄网站| 欧美日韩一区二区高清| 亚洲国产黄色片| 麻豆成人av| 亚洲成人在线网| 亚洲高清视频一区| 亚洲精品日韩一| 亚洲欧美成人在线| 久久岛国电影| 欧美日韩国产影片| 国产精品一区二区在线观看| 国产日韩欧美自拍| 91久久精品国产| 在线亚洲自拍| 久久久人成影片一区二区三区| 麻豆精品在线观看| 国产精品女人毛片| 一区二区三区在线看| 91久久久国产精品| 香蕉av福利精品导航| 男人的天堂成人在线| 亚洲美女诱惑| 久久久蜜桃精品| 国产精品美女xx| 亚洲黑丝一区二区| 亚洲小视频在线观看| 亚洲综合视频在线| 男女激情久久| 中文欧美日韩| 久久在线视频在线| 欧美视频专区一二在线观看| 狠狠色综合网| 亚洲影院色在线观看免费| 久久免费视频网站| 一本色道婷婷久久欧美| 久久天堂成人| 国产日韩在线看片| 亚洲一区二区三区久久| 欧美激情一区二区在线| 亚洲欧美另类在线观看| 欧美区国产区| 亚洲精品影院| 国产亚洲毛片| 午夜久久久久久久久久一区二区| 欧美黄色影院| 开心色5月久久精品| 国产日韩欧美制服另类| 亚洲一区二区三区久久| 亚洲美女少妇无套啪啪呻吟| 久热精品视频在线观看| 国内在线观看一区二区三区 | 久久国产精品99精品国产| 欧美午夜免费| 亚洲一区二区在线视频| 亚洲九九精品| 欧美日本国产视频| 99精品视频免费| 亚洲国产专区| 欧美xxxx在线观看| 亚洲国产老妈| 免费人成精品欧美精品| 久久全球大尺度高清视频| 狠狠色噜噜狠狠狠狠色吗综合| 性欧美video另类hd性玩具| 亚洲无亚洲人成网站77777| 国产精品久久毛片a| 欧美一级精品大片| 久久精品人人做人人爽| 伊人成人在线| 亚洲第一精品在线| 欧美另类99xxxxx| 亚洲色图综合久久| 亚洲在线视频观看| 狠狠色丁香久久婷婷综合丁香| 久久青青草综合| 免费观看亚洲视频大全| 99精品国产一区二区青青牛奶| 99国产精品久久久久老师| 国产精品裸体一区二区三区| 久久久久成人精品| 嫩草国产精品入口| 在线视频欧美日韩| 狠狠色2019综合网| 久久精品系列| 亚洲午夜性刺激影院| 国产精品一区亚洲| 久久五月天婷婷| 欧美激情va永久在线播放| 亚洲一级电影| 久久精品成人欧美大片古装| 亚洲国产欧美一区| 亚洲性视频网站| 在线成人av| aa级大片欧美| 狠久久av成人天堂| 一区二区三区国产精华| 在线观看欧美| 亚洲视频国产视频| 亚洲黄一区二区三区| 亚洲最新合集| 亚洲国产精品电影在线观看| 一区二区日韩欧美| 亚洲国产小视频| 亚洲欧美日韩人成在线播放| 亚洲精品男同| 久久久久在线观看| 亚洲欧美日韩精品综合在线观看| 久久久久女教师免费一区| 亚洲一区免费视频| 免费看av成人| 久久精品亚洲一区二区| 欧美片第1页综合| 欧美jizzhd精品欧美喷水| 国产欧美欧美| 一区二区日韩| 99精品久久免费看蜜臀剧情介绍| 午夜国产不卡在线观看视频| 中文久久乱码一区二区| 欧美成人黑人xx视频免费观看| 久久精品国产免费| 国产精品免费看片| 日韩一级裸体免费视频| 亚洲毛片网站| 欧美成人一区二区三区片免费| 久久视频在线视频| 国产欧美一区二区三区久久 | 欧美在线观看一区二区| 欧美视频在线观看免费网址| 亚洲日本激情| 99香蕉国产精品偷在线观看| 欧美.www| 91久久久一线二线三线品牌| 亚洲国产欧美另类丝袜| 久热精品视频在线| 欧美福利视频网站| 亚洲国产美女久久久久| 美女999久久久精品视频| 欧美v日韩v国产v| 亚洲激情在线观看视频免费| 久久在线免费观看| 亚洲国产成人久久| 亚洲精选久久| 欧美日韩另类丝袜其他| 夜夜嗨av一区二区三区中文字幕| 亚洲深夜福利| 欧美一区激情视频在线观看| 久久影视精品| 亚洲黑丝一区二区| 99re亚洲国产精品| 国产精品高潮呻吟久久av黑人| 一区二区三区国产精华| 欧美一区二区三区精品电影| 国产亚洲欧美一区二区| 久久久蜜臀国产一区二区| 亚洲大胆美女视频| 一本色道久久综合亚洲精品小说| 欧美丝袜一区二区| 欧美在线播放一区| 亚洲二区精品| 亚洲特色特黄| 国产一区二区视频在线观看| 久热精品视频| 制服诱惑一区二区| 久久久久一区| 日韩一区二区精品葵司在线| 欧美午夜精彩| 久久精品国产精品亚洲| 91久久久一线二线三线品牌| 午夜精品福利视频| 亚洲国产高清一区| 国产精品久久久一区二区| 久久蜜臀精品av| 一本一本a久久| 牛夜精品久久久久久久99黑人| 正在播放亚洲一区| 狠狠色综合色综合网络| 欧美三级欧美一级| 久久久久女教师免费一区| 夜夜爽av福利精品导航 | 夜夜爽av福利精品导航| 国产日韩av一区二区| 欧美激情综合| 久久久久久久综合日本| 99这里只有久久精品视频| 久久蜜桃精品| 亚洲欧美日韩视频二区| 亚洲欧洲三级电影| 黄色成人免费网站| 国产精品一区二区久久精品| 欧美大片91| 久久精品中文字幕一区| 亚洲天堂黄色| 亚洲精品免费网站| 欧美国产精品专区| 久久裸体视频| 久久精彩免费视频| 性欧美xxxx视频在线观看| 一区二区三区四区国产| 亚洲高清不卡| 樱桃成人精品视频在线播放|