我正在写一个使用C-DLL的工具。 C-DLL的功能需要char*
,它采用UTF-8格式。
我的问题:我可以通过PChar
还是必须使用UTF8Encode(string)
?
最佳答案
考虑一个名为s
的字符串变量。在ANSI上,Delphi PChar(s)
是ANSI编码的。在Unicode Delphi中,它是UTF-16编码的。
因此,无论哪种方式,都需要将s
转换为UTF-8编码。然后,您可以使用PAnsiChar(...)
获取指向以空终止的C字符串的指针。
因此,您需要的代码如下所示:
PAnsiChar(UTF8Encode(s))
关于delphi - PChar UTF-8是否已编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892780/