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