轉(zhuǎn)載請(qǐng)注明出處http://m.shnenglu.com/greatws/archive/2008/08/31/60546.html最近有人問我關(guān)于這個(gè)的問題,就此寫一篇blogAnsi字符串我們最熟悉,英文占一個(gè)字節(jié),漢字2個(gè)字節(jié),以一個(gè)\0結(jié)尾,常用于txt文本文件Unicode字符串,每個(gè)字符(漢字、英文字母)都占2個(gè)字節(jié),以2個(gè)連續(xù)的\0結(jié)尾,NT操作系統(tǒng)內(nèi)核用的是這種字符串,常被定義為typedef unsigned short wchar_t;所以我們有時(shí)常會(huì)見到什么char*無法轉(zhuǎn)換為unsigned short*之類的錯(cuò)誤,其實(shí)就是unicodeUTF8是Unicode一種壓縮形式,英文A在unicode中表示為0x0041,老外覺得這種存儲(chǔ)方式太浪費(fèi),因?yàn)槔速M(fèi)了50%的空間,于是就把英文壓縮成1個(gè)字節(jié),成了utf8編碼,但是漢字在utf8中占3個(gè)字節(jié),顯然用做中文不如ansi合算,這就是中國(guó)的網(wǎng)頁(yè)用作ansi編碼而老外的網(wǎng)頁(yè)常用utf8的原因。UTF8在還游戲里運(yùn)用的很廣泛,比如WOW的lua腳本等下面來說一下轉(zhuǎn)換,主要用代碼來說明吧寫文件我用了CFile類,其實(shí)用FILE*之類的也是一樣,寫文件和字符串什么類別沒有關(guān)系,硬件只關(guān)心數(shù)據(jù)和長(zhǎng)度Ansi轉(zhuǎn)Unicode介紹2種方法
posted on 2008-09-01 11:38 肥仔 閱讀(795) 評(píng)論(0) 編輯 收藏 引用 所屬分類: C++ 基礎(chǔ)
Powered by: C++博客 Copyright © 肥仔