參考資料 ----
Delphi 預設讀取 ASCII 文字檔,若要讀取 UTF-8 格式的文字檔,則需要轉換。
在 Form1 上放一個 button 和 memo,然後在 button onclick event 寫入以下程式碼:
procedure TForm1.Button1Click(Sender: TObject); var myfile: TextFile; ss: string; begin memo1.clear; AssignFile(myfile, 'd:\temp\list.csv'); Reset(myfile); while not EOF(myfile) do begin ReadLn(myfile,ss); // 由於某些 UTF-8 格式的檔首會含有 BOM // 但 BOM 對 UTF-8 文字檔並非必需 // 因此將 BOM 字元消除 if (pos(#$EF#$BB#$BF,ss)>0) then begin ss := StringReplace(ss, #$EF#$BB#$BF, '', [rfReplaceAll]); end; ss := UTF8ToAnsi(ss); memo1.Lines.Add(ss); end; CloseFile(myfile); end;
相關筆記 ----