
發布
注冊
/
登錄ansys讀取txt文檔的案例
EXCEL讀取txt文檔內容時,如何區分txt文檔的編碼格式 ¥10
問題:
在使用excel的開發功能,操控txt文檔創建仿真報告的過程中,發現有時會出現亂碼、報錯的問題。了解后發現txt文檔針對“漢字”是有區分不同編碼的。
Ansys Workbench 寫出的txt是“ANSI”編碼的文檔。
而Python或其它寫出的txt文檔有時是“utf-8”編碼的文檔。
當讀取這些txt文檔時,如果不區分編碼格式,就會導致讀入的“漢字”是亂碼。
所以在excel讀取txt文檔內容時,就需要先對txt文檔的編碼格式進行判斷,在進行讀取或轉換。
(本人在使用過程中,目前只用到了utf-8 和ANSI 兩種編碼)
在網絡上針對excel解讀txt編碼進行了檢索,知道了一些基本內容,但是沒有解決
Windows就是使用BOM來標記文本文件的編碼方式的。
當用編程的方式判斷一個文本文件的編碼方式時,如果以二進制形式讀取文件頭的前兩個字節,如果是FEFF,則表示Unicode Big Endian 編碼。如果是FFFE,則表示Unicode Little Endian 編碼。如果前三個字節是EFBBBF則表示UTF-8編碼。如果都不是,則表示是ANSI編碼
但是,好巧不巧的是,utf-8(無BOM)和ANSI兩個編碼是沒有頭部的校驗碼的,因此較難區分,沒有找到合適的答案。
當前的解決方案是利用二進制打開文檔,逐字校驗txt文檔編碼:
1. 按二進制方式打開txt文檔,讀取文檔內容為二進制數據。
2. 判斷每個數據是否符合utf-8編碼格式。
3. 不符合就是ANSI編碼,符合就是utf-8編碼。
4. 將utf-8編碼統一更改為ANSI編碼。
展開