代理对,是由一个高位代理字符与一个低位代理字符组成的。所以,D800~DFFF之间的任何一个字符都不能单独出现。
代理对是干什么的?
如果你有一个Unicode字符😀(U+1F600),而在你的控制台里只能打印16位的Unicode(即0~FFFF)![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fb67405c54a9dbf871973a1b74a63cba.png)
你就可以使用代理对将其转化为两个16位字符了。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8e0e0a7e38b4682ee984b8a5d567eefe.png)
高位代理与低位代理各有0x400
个字符。合起来可以表示0x100000
个字符,也就是说1号平面至16号平面的字符都可以用代理对表示了。
如何计算代理对?
def nonBMPtoBMP(up):
return chr(