自Windows NT開始,Windows的所有版本都完全使用Unicode來構建。Windows的所以核心函數(shù)(創(chuàng)建窗口、顯示文本、進行字符串處理等)都需要Unicode字符串。調(diào)用Windows函數(shù)時,如果想他傳入1個ANSI字符串(有單字節(jié)組成的1個字符串),那末函數(shù)首先把字符串轉(zhuǎn)換為Unicode,再把結果傳給操作系統(tǒng)。如果希望函數(shù)返回ANSI字符串,那末希望寒素返回ANSI字符串,那末操作系統(tǒng)會把Unicode字符串轉(zhuǎn)換為ANSI字符串,再把結果返回給我們的利用程序。所有這些轉(zhuǎn)換都是在幕落后行的。為了履行這些字符串轉(zhuǎn)換,系統(tǒng)會產(chǎn)生時間和內(nèi)存上的開消。
關于字符的編碼:
在Windows Vista中,每一個字符都使用UTF⑴6編碼,UTF的全稱是Unicode Transformation Format(Unicode格式轉(zhuǎn)換)。
UTF⑴6將每一個字符編碼為兩個字節(jié)(或說16bit);
UTF⑻ 將1些字符編碼為1個字節(jié),將1些字符編碼為2個字節(jié),將1些字符編碼為3個字節(jié),將1些字符編碼為4個字節(jié)。 UTF⑻是1種比較流行的編碼格式,但不如UTF⑴6高效;
UTF⑶2將每一個字符都編碼為4個字節(jié)。如果打算寫1個簡單的算法來遍歷字符(任何語言中使用的字符),但又不想處理字符不定的字符,這類編碼方式就非常有用。
下一篇 JPA 大文本