情况:我有一个外部 DLL,它使用 UTF-8 作为其内部字符串格式。接口函数都使用 PAnsiChar 来传递字符串。
我的应用程序的其余部分使用 Delphi 的本机string
类型;由于我正在使用 Delphi 2010,这将映射到UnicodeString
.
如何可靠地将这些 PAnsiChar 参数(指向 UTF-8 编码字符串)转换为 UnicodeString?
我有这个功能,我认为效果很好:
function PUTF8CharToString(Text: PAnsiChar): string;
var
UText: UTF8String;
begin
UText := UTF8String(Text);
Result := string(UText);
end;
...但现在我遇到了结果字符串损坏的情况;当我将 PAnsiChar 保存到文件时,一切都很好;但是当我使用上述函数转换后保存结果字符串时,它已损坏。
Or should这工作正常,这是否表明存在其他内存(取消)分配问题?
Edit:
来自系统:
函数 UTF8ToUnicodeString(const S: PAnsiChar): UnicodeString;超载;
UnicodeStr := System.Utf8ToUnicodeString(文本);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)