一個解決 TXT檔 編碼 讀取判斷 ansi 或 utf-8 的小方法 |
|
it1506
初階會員 ![]() ![]() 發表:33 回覆:89 積分:49 註冊:2011-02-16 發送簡訊給我 |
當要讀取 txt 檔時 總要判斷編碼 是 ansi 或是 utf-8 ,不然中文就會亂碼.
要是遇到沒有bom頭的TXT檔, 就更麻煩. 後來想到可以用一些小方法...使用 memo 元件 當 mmo2.Lines.LoadFromStream(sr,TEncoding.UTF8); 若該檔案編碼是ANSI 則 memo的line會是一片空白, 也就沒有行數. 所以就可以藉由判斷memo.lines.count 來決定要用哪種編碼來讀取了! [code delphi] sr:=TFileStream.Create('c:\test.txt',fmShareDenyWrite); mmo2.Lines.LoadFromStream(sr,TEncoding.UTF8); //預設都utf8 if mmo2.Lines.Count=0 then begin sr.Free; sr:=TFileStream.Create('c:\test.txt',fmShareDenyWrite); mmo2.Clear; mmo2.Lines.LoadFromStream(sr,TEncoding.ANSI); end; [/code] 編輯記錄
it1506 重新編輯於 2017-10-12 09:59:31, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |