use*_*348 8 html delphi html-entities delphi-10.1-berlin
HTML字符实体𝕒:
可以使用此HTML代码从数字120146创建:
<!DOCTYPE html>
<html>
<style>
body {
font-size: 20px;
}
</style>
<body>
<p>I will display 𝕒</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
其中一些扩展字符符号可以在HTML和Delphi 10.1.2中使用相同的数字值创建.例如:
双方®并Chr(174)创建了"注册商标"符号字符®
双方£并Chr(163)创建了"咚咚"标记符号£
等等.
不幸的是,这不符合上述数量的情况下120146,其中Chr(120146)在Delphi中创建一个"有趣的中国符号".
那么如何𝕒从Delphi中的数字120146创建上面的字符符号?哪个是数值范围,HTML和Delphi之间的上述数字等价是否有效?
Dav*_*nan 11
这是'MATHEMATICAL DOUBLE-STRUCK SMALL A'(U + 1D552).它在Basic Multilingual Plane之外,因此在UFT-16中使用代理对进行编码.这意味着需要两个UTF-16字符元素.
看看你的尝试:Chr(120146).现在,120146 > high(Word)(= 65535)告诉你你的代码不能成功.请记住,每个UTF-16字符元素的大小为16位.如果编译器警告这件事会很好.可以?
上面的链接告诉你如何编码它.它是由这个代理对给出的:
0xD835 0xDD52
在Delphi中,最容易编写为:
#$D835#$DD52
Run Code Online (Sandbox Code Playgroud)
如果你开始用UTF-32代码为数值,那么你可以将其转换为使用Delphi的字符串TCharacter.ConvertFromUtf32从System.Character单元:
TCharacter.ConvertFromUtf32($1D552)
Run Code Online (Sandbox Code Playgroud)
显然,这个函数的参数可以是一个变量.
如果您不了解上述大部分Unicode术语,请阅读以下文章: