gpt4 book ai didi

html - HTML 字符实体和 Delphi 之间的数字等价性?

转载 作者:太空狗 更新时间:2023-10-29 13:43:21 27 4
gpt4 key购买 nike

HTML 字符实体:

enter image description here

可以使用以下 HTML 代码从数字 120146 创建:

<!DOCTYPE html>
<html>
<style>
body {
font-size: 20px;
}
</style>
<body>

<p>I will display &#120146;</p>

</body>
</html>

这些扩展字符符号中的一些可以在 HTML 和 Delphi 10.1.2 中从相同的数字值创建。例如:

®Chr(174)均创建“注册商标”符号字符®

£Chr(163) 都创建了“磅”符号字符 £

等等

不幸的是,上面的数字 120146 不是这种情况,其中 Chr(120146) 在 Delphi 中创建了一个“有趣的中文符号”。

那么如何在Delphi中从数字120146创建上面的字符符号呢?上述 HTML 和 Delphi 之间的数值等价在哪个数值范围内有效或无效?

最佳答案

这是 'MATHEMATICAL DOUBLE-STRUCK SMALL A' (U+1D552) .它在基本多语言平面之外,因此在 UFT-16 中使用代理对进行编码。这意味着需要两个 UTF-16 字符元素。

看看你的尝试:Chr(120146)。现在,120146 > high(Word) (= 65535) 告诉您您的代码无法成功。请记住,每个 UTF-16 字符元素的大小都是 16 位。如果编译器对此发出警告就好了。是吗?

上面的链接告诉您如何对其进行编码。它由这个代理对给出:

0xD835 0xDD52

在 Delphi 中最容易写成:

#$D835#$DD52

如果您以 UTF-32 代码作为数值开始,那么您可以使用 TCharacter.ConvertFromUtf32 将其转换为 Delphi 字符串来自 System.Character 单元:

TCharacter.ConvertFromUtf32($1D552)

显然这个函数的参数可以是一个变量。

如果上面的大部分 Unicode 术语您都不了解,请阅读以下文章:

关于html - HTML 字符实体和 Delphi 之间的数字等价性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46351459/

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