Win32下Utf8檔案簽名 EF BB BF

2021-06-03 17:59:30 字數 414 閱讀 5764

最近在處理文字時由於需要使用utf8來編碼檔案,在win32下,將乙個ascii檔案使用記事本另存為utf8格式的檔案。使用ifstream讀取這個文字的第一行之後再將其轉換為ansi,結果總是在轉換之後的文字的第一行出現乙個「?」。這樣我很疑惑。

為了檢查問題的原因,我將第二行的文字設為與第一行的內容是一樣的(utf8檔案中)。對比ifstream讀取的兩行文字之間到底有什麼差異,發現第一行在最開始的地方多出來3個byte,即ef bb bf。

上網查了一下資料,發現這個是win32的utf8格式檔案的簽名,找到一篇文章,

奇怪的是同樣的文字,在linux下處理時再轉為ansi就不會出現「?」

為了解決類似問題,建議在將ansi檔案轉為utf8檔案時不要使用記事本另存為,使用ue等專業工具進行轉換。這樣就不會出現utf8檔案簽名的問題

UTF8檔案讀寫

2009 04 07 12 00 56 分類 預設分類 舉報 字型大小訂閱 基本方法 使用vs2005提供的功能讀utf 8文字檔案,並將內容轉存在以unicode儲存的記憶體空間 如果需要寫出則使用二進位制方式開啟檔案,使用windows api函式widechartomultibyte轉換好後再...

Windows下列印utf 8檔案

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

Win32檔案操作

開啟檔案的示例 handle hsrcfile createfile text main.cpp generic read,file share read,null,open existing,file attribute normal,null if hsrcfile invalid handle...