UTF8檔案讀寫

2021-06-27 05:48:08 字數 1032 閱讀 4103

2009-04-07 12:00:56

|  分類:

預設分類|舉報

|字型大小訂閱

基本方法:

使用vs2005提供的功能讀utf-8文字檔案,並將內容轉存在以unicode儲存的記憶體空間;如果需要寫出則使用二進位制方式開啟檔案,使用windows api函式widechartomultibyte轉換好後再輸出內容到輸出檔案中。

讀檔案:

開啟檔案

file *fp;

fopen_s(&fp, "file.txt", "rt, ccs=unicode");

或者fopen_s(&fp, "file.txt", "rt, ccs=utf-8");

都可以

讀wchar_t line[buff_size];

wchar_t str = fgetws(line, buff_size, fp);

if (str == null)

寫檔案

開啟檔案

file *fp;

fopen_s(&fp, "fileout.txt", "w+b");

寫utf-8檔案頭(必須在後續寫之前)

char line[3]; // utf-8 file header

line[0] = 0xef;

line[1] = 0xbb;

line[2] = 0xbf;

fwrite(line, sizeof(char), 3, fp);

寫一行void writeutf8textline(file *f, cstring str) // inline function

// file must be opened in binary mode

// write unicode string str to utf-8 file stream as a text line

其他方法:

使用icu library(

Windows下列印utf 8檔案

估計入門時都會遇到的。我是在windows下用的python25自帶的idle編輯執行的,發現執行指令碼得出的結果有一些中文顯示是亂碼,但有一些是 正常的。百思不得其解。首先檢視了一下原始檔的編碼格式,是utf 8。經過搜尋再搜尋,除錯再除錯,也換了幾個編譯器,發現比idle還糟糕 可能需要 進行e...

去除 UTF 8 檔案 BOM 頭

bom 全稱是 byte order mark 位元組順序標記 出現在文字檔案頭部,unicode 編碼標準中用於標識檔案是採用哪種格式的編碼。比如 當用記事本儲存乙個以 utf 8 編碼的檔案時,會自動在檔案開始自動插入三個不可見字元 0xef 0xbb 0xbf 但是通常情況下不需要這個頭部來識...

在Qt中建立UTF 8檔案

試圖在qt中建立乙個utf 8編碼的檔案 int main qtextstream streamfileout fileout streamfileout.setcodec utf 8 streamfileout unicodestring streamfileout.flush fileout.c...