Delphi 6将ucs-2小端文件转换为utf8

时间:2016-03-10 08:21:53

标签: delphi encoding delphi-6

我正在尝试导入具有ucs2小端编码的csv文件。我正在使用jedi compnonent(jvCsvDataset)来收集操作数据。组件无法使用此编码读取数据,我需要将其转换为utf8。问题是我需要在delphi 6中完成。

你是否知道" ucs2decode"功能或任何其他方法?

提前致谢!

1 个答案:

答案 0 :(得分:3)

在WideString中读取文件,然后使用UTF8Encode,可能是这样的:

function ReadUCS2FileToUTF8(const FilePath: string): UTF8String;
var
  f: TFileStream;
  d: WideString;
begin
  f := TFileStream.Create(FilePath, fmOpenRead or fmShareDenyWrite);
  try
    SetLength(d, f.Size div SizeOf(WideChar));
    if Length(d) > 0 then
      f.ReadBuffer(d[1], Length(d) * SizeOf(WideChar));
  finally
    f.Free;
  end;
  Result := UTF8Encode(d);
end;