TStringList.LoadFromFile时会出现 No mapping for the Unicode character exists in the target multi-byte code page提示
如下代码
var tmpStrs : TStrings;
begin
tmpStrs := TStringList.Create;
tmpStrs.LoadFromFile(filename, TEncoding.UTF8); //这里有可能会出现No mapping for the Unicode character exists in the target multi-byte code page
tmpStrs.Free;
end;
原因是读取的文件如果不是UTF8格式的,会出现错误提示,改进方法如下
var tmpStrs : TStrings;
begin
tmpStrs := TStringList.Create;
try
tmpStrs.LoadFromFile(htmlfile_s, TEncoding.UTF8); //先用utf-8尝试
except
tmpStrs.LoadFromFile(htmlfile_s); //再用默认编码尝试
end;
tmpStrs.Free;
end;