全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1324
推到 Plurk!
推到 Facebook!

如何依正確編碼讀取文字檔

答題得分者是:GrandRURU
blue
中階會員


發表:113
回覆:100
積分:52
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-07-14 21:18:19 IP:219.81.xxx.xxx 訂閱
Hi,各位先進大家好:
小弟想將檔案訵入到 TStringList,
但,檔案編碼可能是 UTF-8,也可能是ASCII,
要如何先判斷檔案編碼才能決定使用
sl.LoadFromFile(FileName, TEncoding.UTF8);

sl.LoadFromFile(FileName, TEncoding.ASCII);
謝謝!
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-07-14 21:53:18 IP:211.79.xxx.xxx 訂閱

Detecting 'text' file type (ANSI vs UTF-8)

===================引 用 blue 文 章===================
Hi,各位先進大家好:
小弟想將檔案訵入到 TStringList,
但,檔案編碼可能是 UTF-8,也可能是ASCII,
要如何先判斷檔案編碼才能決定使用
sl.LoadFromFile(FileName, TEncoding.UTF8);

sl.LoadFromFile(FileName, TEncoding.ASCII);
謝謝!
blue
中階會員


發表:113
回覆:100
積分:52
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-07-14 22:31:34 IP:219.81.xxx.xxx 訂閱
Hi,感謝 GrandRURU指導:
小弟依該文方式讀取前三碼,
但,所讀取的卻是自第三碼開始讀取(前二碼用來判讀的Byte讀不進來),
無法使用該方法判讀,不知問題出在那裏?
謝謝!

ANSI: 無格式定義;
Unicode: 前兩個位元組為FFFE;
Unicode big endian: 前兩位元組為FEFF;
UTF-8: 前兩位元組為EFBB;


===================引 用 GrandRURU 文 章===================

Detecting 'text' file type (ANSI vs UTF-8)

===================引 用 blue 文 章===================
Hi,各位先進大家好:
小弟想將檔案訵入到 TStringList,
但,檔案編碼可能是 UTF-8,也可能是ASCII,
要如何先判斷檔案編碼才能決定使用
sl.LoadFromFile(FileName, TEncoding.UTF8);

sl.LoadFromFile(FileName, TEncoding.ASCII);
謝謝!
blue
中階會員


發表:113
回覆:100
積分:52
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-07-15 16:45:08 IP:122.146.xxx.xxx 訂閱
已解,
使用GrandRURU提供的 Detecting 'text' file type (ANSI vs UTF-8)
文末的 function FileMayBeUTF8(FileName: WideString): Boolean;
謝謝!
===================引 用 blue 文 章===================
Hi,感謝 GrandRURU指導:
小弟依該文方式讀取前三碼,
但,所讀取的卻是自第三碼開始讀取(前二碼用來判讀的Byte讀不進來),
無法使用該方法判讀,不知問題出在那裏?
謝謝!

ANSI: 無格式定義;
Unicode: 前兩個位元組為FFFE;
Unicode big endian: 前兩位元組為FEFF;
UTF-8: 前兩位元組為EFBB;


===================引 用 GrandRURU 文 章===================

Detecting 'text' file type (ANSI vs UTF-8)

===================引 用 blue 文 章===================
Hi,各位先進大家好:
小弟想將檔案訵入到 TStringList,
但,檔案編碼可能是 UTF-8,也可能是ASCII,
要如何先判斷檔案編碼才能決定使用
sl.LoadFromFile(FileName, TEncoding.UTF8);

sl.LoadFromFile(FileName, TEncoding.ASCII);
謝謝!
系統時間:2017-10-23 17:32:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!