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