讀取ansi編碼檔案時,先將檔案儲存在char*指向的記憶體內,而後使用轉換將char*轉換為w_char_t*。wchar_t*可以使用cstring的
format函式。
cfile file(_t("test.txt"), cfile::moderead);//讀ansi編碼的檔案
int filelen = file.getlength();
char *p = new char[filelen + 1];
file.read(p, filelen);
p[filelen] = '\0';
uses_conversion;//轉化為wchar_t* 可以使用cstring的format函式。
wchar_t* wp = new wchar_t[filelen + 1];
wp = a2t(p);
str.format(_t("%s"), wp)
file.close();
寫ansi檔案時,將unicode編碼的cstring轉化為ansi編碼的cstringa,要獲取ansi格式的字元只需要使用
getbuffer即可。也可使用widechartomultibyte轉換。
cstringa str_ansi(str.getbuffer(0));
cfile file_ansi(_t("test_ansi.txt"), cfile::modecreate | cfile::modewrite);//寫ansi編碼的檔案
file_ansi.write(str_ansi.getbuffer(), str_ansi.getlength());
//cfile file_ansi(_t("test_ansi.txt"), cfile::modecreate | cfile::modewrite);
//file_ansi.write(p, filelen);
file_ansi.close();
Unicode字符集和多字符集
由於各國語言的加入,ascii已經不能滿足資訊交流的需要,因此,為了能夠表示其它國家的文字,各國在ascii的基礎上制定了自己的字符集,它們正式的名稱應該是mbcs multi byte chactacter system,即多位元組字元系統 型別說明 unicode ansi 通用型別 字元wch...
雜記 Unicode字符集
unicode是字符集,但是微軟在windows上把unicode視為utf 16,即乙個字元佔2個位元組16位。utf 16是unicode的一種編碼規則,與此同時還有utf 8 utf 32。utf 8將一些字元編碼為1個位元組,一些字元編碼為2個位元組,一些字元編碼為3個位元組,一些字元編碼為...
Unicode字符集詳解
一句來自 三國 中的話 分久必合合久必分,各個字符集之間也存在的分久必合的現象。隨著國際標準iso10646規定的通用字符集 ucs,全稱universal mutiple octet doded character set 的發布,各種字符集之間不統一和諧的問題就得到了改觀。utf編碼,全稱是un...