我在读取文本文件(逗号隔开的txt文件)的时候。当文件编码方式是UTF-8的时候第一行的第一个字段乱码。跪求大神帮助。
具体部分代码如下:     list:=TStringList.Create;
     listr:=TStringList.Create;
     list.LoadFromFile(file_path);
     for j:=0 to  list.Count-1 do
     Begin
      listr.Delimiter :=',';//逗号分隔
      listr.DelimitedText :=list[j];
      str1:=listr[0];//这个字段报错,乱码。说是utf-8文件的钱三个字节造成的(ANSI格式的文件正常),第二行开始正常
      str2:=listr[1];
      str3:=listr[2];
跪求各位大神指教~~~~~~。如何解决啊!

解决方案 »

  1.   

    做一个UTF8 BOM的判断如何var
      UTF8FileBOM:boolean;
        listr.Delimiter :=',';//逗号分隔
        listr.DelimitedText :=list[j];
        UTF8FileBOM:=(ord(listr[0][1])=$EF) and (ord(listr[0][2])=$BB) and (ord(listr[0][3])=$BF);
        if UTF8FileBOM then
          str1:=strpas(@listr[0][4])
        else
          str1:=listr[0];
        str2:=listr[1];
        str3:=listr[2];
      

  2.   

    你的是不是delphi2009以下的版本?