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

woaidongmao

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

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

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

我們看看他的定義:

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

ok,一切問題都解決了,我們只需要定義UNICODE就一樣使用wchar_t,是很方便。另外,在windowsCOM中使用的一律是unicode,但是MFC默認(rèn)的確實(shí)MBCS,所以你用MFC寫的類庫如果放到了COM下,有些字符的格式化方式或者返回值錯(cuò)誤的,原因就是com一律使用unicode,而unicode使用wchar_t('00')結(jié)尾,char卻是使用'0'結(jié)尾的。一般情況下,普通字符需要加載_T宏才能正常運(yùn)行,比如MFC中你寫道S = "FSDFSDF",那么該類轉(zhuǎn)到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ù),當(dāng)然可以處理SBCS編碼,但是反之卻不行。所以為了保險(xiǎn)起見,我們可以使用_mbsstr代替strstr,但是如果程序只是處理SBCS,那么顯然又影響效率,所以到底用什么方式同時(shí)滿足效率和可移植性,自己掂量著辦吧。

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

 

posted on 2008-11-07 22:33 肥仔 閱讀(744) 評論(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>
            亚洲精品国产精品国产自| 欧美一站二站| 欧美综合国产精品久久丁香| 亚洲毛片一区二区| 99国产精品私拍| 在线亚洲国产精品网站| 中文在线一区| 亚洲欧美激情诱惑| 亚洲图片欧美午夜| 午夜精品久久一牛影视| 久久久精品久久久久| 麻豆精品传媒视频| 亚洲精品久久久久| 99国产精品一区| 欧美一级黄色网| 蜜臀av一级做a爰片久久| 欧美国产综合视频| 国产精品国产三级国产aⅴ入口 | 久久婷婷蜜乳一本欲蜜臀| 午夜久久99| 欧美黄免费看| 亚洲欧美日韩国产中文在线| 亚洲国产精品成人精品| 欧美激情 亚洲a∨综合| 欧美性大战久久久久久久| 国产精品呻吟| 亚洲黄色免费| 久久国产精品免费一区| 欧美激情影音先锋| 国产精品99久久99久久久二8| 欧美亚洲三区| 欧美日韩三级在线| 激情小说另类小说亚洲欧美| 亚洲精品影视在线观看| 久久精品视频在线| 夜夜嗨一区二区| 久久久中精品2020中文| 国产精品久久久久久久7电影| 亚洲国产高清一区| 久久成人18免费观看| 亚洲久久一区二区| 免费看亚洲片| 好看的日韩av电影| 欧美伊人精品成人久久综合97| 亚洲成人中文| 久久久一二三| 国产亚洲女人久久久久毛片| 99亚洲视频| 亚洲第一福利视频| 久久久人成影片一区二区三区观看| 国产精品高潮久久| 国产精品99久久久久久久久| 欧美黄网免费在线观看| 亚洲免费视频成人| 国产精品网站在线播放| 亚洲欧美成人在线| 亚洲天堂av在线免费观看| 欧美日韩国产不卡在线看| 亚洲精品欧美日韩| 亚洲第一福利社区| 欧美 日韩 国产 一区| …久久精品99久久香蕉国产| 久久亚洲精品一区二区| 欧美尤物一区| 亚洲第一成人在线| 亚洲国产精品福利| 欧美日韩午夜| 亚洲欧美日本日韩| 亚洲欧美日韩在线一区| 国产精品久久久久毛片大屁完整版 | 欧美日韩国产在线观看| 亚洲精品一区久久久久久| 亚洲国产精品欧美一二99| 欧美高清免费| 亚洲淫性视频| 亚洲欧美日韩中文视频| 国产婷婷色一区二区三区| 久久久久久91香蕉国产| 亚洲欧美电影在线观看| 亚洲一区二区三区激情| 亚洲午夜av在线| 国产自产精品| 欧美激情一区三区| 欧美日韩中文字幕在线视频| 性色一区二区三区| 欧美中文字幕视频在线观看| 怡红院av一区二区三区| 亚洲国内自拍| 欧美日韩一区视频| 久久久91精品国产一区二区精品| 欧美中文字幕视频| 日韩一二三在线视频播| 亚洲亚洲精品三区日韩精品在线视频| 国产亚洲精品一区二555| 亚洲国产精品电影在线观看| 国产精品欧美日韩一区| 久久久亚洲一区| 欧美日韩在线电影| 久久久久久免费| 欧美片第一页| 久久中文字幕一区| 国产精品国产亚洲精品看不卡15| 久久三级福利| 国产精品盗摄久久久| 欧美高清在线| 国产揄拍国内精品对白| 日韩视频在线你懂得| 精品动漫3d一区二区三区| 一本色道久久综合亚洲精品按摩 | 亚洲欧美日本精品| 免费久久久一本精品久久区| 久久精品123| 欧美色图天堂网| 欧美国产日韩一区二区在线观看| 国产精品一区在线观看| 亚洲丰满在线| 在线成人亚洲| 午夜欧美不卡精品aaaaa| 一本色道久久加勒比88综合| 久久精品久久99精品久久| 午夜精品久久久久久久| 欧美精品免费在线| 美女精品在线观看| 国产欧美一区二区三区久久人妖 | 国产乱码精品| 制服丝袜亚洲播放| 亚洲精品一区在线观看| 久久久不卡网国产精品一区| 欧美在线观看视频一区二区三区| 欧美日韩成人综合天天影院| 欧美国产日韩一区二区| 在线看片一区| 久久视频在线视频| 久久婷婷人人澡人人喊人人爽| 国产精品久久久久久久午夜| 艳妇臀荡乳欲伦亚洲一区| 欧美精品一区二区三区视频| 精品999日本| 久久精品一二三区| 久久久久久午夜| 国产一区二区三区在线播放免费观看 | 欧美日韩在线一区| 亚洲精品欧美在线| 亚洲免费久久| 欧美喷潮久久久xxxxx| 亚洲清纯自拍| 亚洲一区欧美二区| 国产欧美欧洲在线观看| 午夜久久电影网| 久久永久免费| 在线日本高清免费不卡| 欧美成人一区在线| 亚洲人在线视频| 亚洲宅男天堂在线观看无病毒| 国产精品欧美一区二区三区奶水 | 欧美日韩1区2区| 99国产精品久久久久久久久久| 亚洲午夜久久久| 国产精品一区二区在线观看网站| 亚洲免费在线视频一区 二区| 欧美一区二区三区久久精品| 国产伦精品一区二区三| 欧美中在线观看| 亚洲欧洲日本在线| 亚洲欧美欧美一区二区三区| 国产一区二区按摩在线观看| 麻豆精品在线播放| 日韩一级在线观看| 久久人人精品| 亚洲一区二区三| 在线不卡中文字幕| 香蕉成人伊视频在线观看| 欧美电影资源| 午夜精品国产精品大乳美女| 在线精品视频免费观看| 欧美性猛交99久久久久99按摩| 欧美一区二区三区四区在线观看| 欧美国产视频日韩| 欧美一区二区日韩| 亚洲乱码国产乱码精品精可以看 | 欧美va亚洲va日韩∨a综合色| 亚洲黄页视频免费观看| 欧美一区成人| 一本色道88久久加勒比精品| 国产综合欧美| 欧美日韩一区二区三区视频| 久久偷看各类wc女厕嘘嘘偷窃| 一区二区国产日产| 欧美二区在线看| 久久激情网站| 欧美一区二区福利在线| 亚洲剧情一区二区| 韩国欧美国产1区| 国产精品色一区二区三区| 欧美黑人国产人伦爽爽爽| 久久爱91午夜羞羞| 日韩一级精品视频在线观看| 欧美成人精品在线| 久久久久久亚洲精品杨幂换脸 | 久久不射网站|