微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HTML Character Entities和Delphi之间的数字等价?

HTML角色实体& aopf;:

可以使用此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中使用相同的数字值创建.例如:

两者&#174;和Chr(174)创建“注册商标”符号字符®

两个&#163;和Chr(163)创造了“磅”符号字符£

等等.

遗憾的是,上述数字120146并非如此,其中德尔福的Chr(120146)创造了一个“有趣的中国符号”.

那么如何创建上述& aopf;德尔福的120146字符符号?哪个是数值范围,HTML和Delphi之间的上述数字等价是否有效?

解决方法

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

看看你的尝试:Chr(120146).现在,120146>高(Word)(= 65535),它告诉您代码不能成功.请记住,每个UTF-16字符元素的大小为16位.如果编译器警告这一点会很好.可以?

上面的链接告诉你如何编码它.它是由这个代理对给出的:

0xD835 0xDD52

在Delphi中,最容易编写为:

#$D835#$DD52

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

TCharacter.ConvertFromUtf32($1D552)

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

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

> The Absolute Minimum Every Software Developer Absolutely,Positively Must Know About Unicode and Character Sets (No Excuses!)
> A Programmer’s Introduction to Unicode,Nathan Reed.

原文地址:https://www.jb51.cc/html/227540.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐