gpt4 book ai didi

delphi - 将 UTF8 字符串传递给 RemObject (Delphi 2007) 时使用哪种字符串类型 - Utf8String 或 WideString

转载 作者:行者123 更新时间:2023-12-03 18:32:06 25 4
gpt4 key购买 nike

有一个 Delphi 2007 应用程序提供了一个基于 RemObjects 的 WebService。我现在想使用这个 WebService 将一个 UTF-8 字符串传递给这个应用程序。现在我可以在 Delphi2007 中使用两种 String 类型:Utf8String 和 WideString。 (Utf8String 在 Delphi 2007 中等于 String - AnsiString)
RemObjects - UTF8String vs WideString
我已经尝试过这两种方法,但只能使用 Utf8String 才有效。使用 Utf8String 是正确的还是我错过了其他东西?

最佳答案

WideString在所有 Delphi 版本中都以 UTF-16 编码。它是 COM 的包装器 BSTR .您根本无法将 UTF-8 内容存储在 WideString 中。 .

在 Unicode 之前的 Delphi 中保存 UTF-8 字符串的数据类型是 UTF8String ,本质上只是一个 AnsiString .它是这样定义的:

type
UTF8String = type string;

在 Unicode 之前的 Delphi 中, stringAnsiString , 一个由 8 位字符元素组成的数组。正是保存 UTF-8 有效负载所需的内容。

在后 unicode Delphi 中, UTF8String仍然是 AnsiString ,但这次带有代码页信息。
type
UTF8String = type AnsiString(65001);

因此,在所有情况下,您都使用 UTF8String保存 UTF-8 编码的字符串。

关于delphi - 将 UTF8 字符串传递给 RemObject (Delphi 2007) 时使用哪种字符串类型 - Utf8String 或 WideString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18888498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com