delphi - PChar UTF-8是否已编码?

标签 delphi utf-8 character-encoding pascal

我正在写一个使用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/

相关文章:

java - Puppet 启动 Tomcat 时汉字显示不正确,手动启动时可以正常工作

java - 从 Spring boot 2.0.5/java 8 迁移后,Spring boot 2.1/java 11 应用程序无法识别重音字符

python - 传递给其他命令时编码发生变化?

delphi - 每个成功的 HTTP 请求是否总是返回状态码 200?

delphi - 在 Delphi 中,有没有办法查看组件的所有引用和链接?

javascript - 在 TWebBrowser 中将字符串传递给 Javascript 时可能出现编码问题

c++ - UTF-16 到 UTF8 与 WideCharToMultiByte 问题

php - utf8 编码文本两次。会不会有什么负面影响?

delphi - 为什么我的表单的 OnKeyDown 事件处理程序没有触发?

regex - 正则表达式替换多字节字符?