Delphi 6 将ucs-2 little endian 文件转换为utf8
Delphi 6 convert ucs-2 little endian file to utf8
我正在尝试导入具有 ucs2 little endian 编码的 csv 文件。我正在使用 jedi compnonent(jvCsvDataset) 来收集和处理数据。该组件无法使用此编码读取数据,我需要将其转换为 utf8。问题是我需要在 delphi 6.
内完成
您知道 "ucs2decode" 函数或任何其他方法吗?
提前致谢!
以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;
我正在尝试导入具有 ucs2 little endian 编码的 csv 文件。我正在使用 jedi compnonent(jvCsvDataset) 来收集和处理数据。该组件无法使用此编码读取数据,我需要将其转换为 utf8。问题是我需要在 delphi 6.
内完成您知道 "ucs2decode" 函数或任何其他方法吗?
提前致谢!
以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;