带圈数字符号0-100和unicode编码

2025-05-07 22:39:15      匈牙利世界杯

文章目录

1. 带圈字符2. 带圈字符背后原理(0-50之后的带圈数字支持)3. unicode字符打印

1. 带圈字符

🄋 (这个是带圈的0,浏览器显示字符和word显示字符会有所差异) ①②③④⑤⑥⑦⑧⑨⑩

⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚

㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵

㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿

2. 带圈字符背后原理(0-50之后的带圈数字支持)

参考:Unicode Circled Numbers

一开始也是想直接找到0-100的带圈数字,但是感谢百度问答-带圈数字。激发了我这个伪程序员的热情。另,发现word里使用带圈数字复制到网页中,会变成这样○51然后就继续寻找。感谢unicode组织的文档,点击这里

大意就是:

带圈字符0的unicode编码是24EA,带圈字符1-20的unicode编码是2460~2473带圈字符21-35的unicode编码是3251-325F带圈字符36-50的unicode编码是32B1~32BF黑色带圈字符0的unicide编码是24FF黑色带圈字符1-10的unicode编码是2776~277F黑色带圈字符11-20的unicode编码是24EB~24F4

后续对50-100的支持,还是一个提案,而且是5位unicode编码。需要使用\U1F1B0这样的编码,

而目前大部分浏览器和IDE都只支持\u240A这样的字符。因此以图片形式存在的带圈字符是可以的,但是以可编码字符存在的是无法在互联网上传播的(word内置的支持也只在word中有效) 尝试:stackoverflow的回答:How to display 5 digit unicode characters such as a speaker /u1f50a 但是浏览器不支持很多显示,所以即便可以拆解这个字符,也没办法正常显示

3. unicode字符打印

直接用unicode字符打印,把1-100这些数字都给打印出来(🤐 然而带圈数字只有1-20是连续的),后面就是其他字符了。。

start=int('0x2460',16) # 字符串转换成16进制整数

print(start) # 9312

for i in range (100):

hex_digit=hex(start)

hex2unicode=("\\u"+hex_digit.split('x')[1]).encode().decode('unicode_escape')

print(hex2unicode)

start+=1

打印出来是这样的

①②③④⑤⑥⑦⑧⑨⑩

⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽

⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇

⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑

⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛

⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥

⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯

⒰⒱⒲⒳⒴⒵ⒶⒷⒸⒹ

ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃ

然后我又试探性的往后看了看,还挺好玩的

▌▍▎▏▐░▒▓▔▕

▖▗▘▙▚▛▜▝▞▟

■□▢▣▤▥▦▧▨▩

▪▫▬▭▮▯▰▱▲△

▴▵▶▷▸▹►▻▼▽

▾▿◀◁◂◃◄◅◆◇

◈◉◊○◌◍◎●◐◑

◒◓◔◕◖◗◘◙◚◛

◜◝◞◟◠◡◢◣◤◥

◦◧◨◩◪◫◬◭◮◯

◰◱◲◳◴◵◶◷◸◹

◺◻◼◽◾◿☀☁☂☃

☄★☆☇☈☉☊☋☌☍

☎☏☐☑☒☓☔☕☖☗

☘☙☚☛☜☝☞☟☠☡

☢☣☤☥☦☧☨☩☪☫

☬☭☮☯☰☱☲☳☴☵

☶☷☸☹☺☻☼☽☾☿

♀♁♂♃♄♅♆♇♈♉

♊♋♌♍♎♏♐♑♒♓

对于这些unicode字符感兴趣的,可以去看看这里或者这个

参考:

python3 Unicode字符与16进制编码互转(单个字符)python常用的十进制、16进制之间的转换

微信登录频繁多久恢复?3种解封方案,快速找回微信
快联贷身份审核多久