簡體   English   中英

如何將大寫字符串轉換為 unicode 粗體大寫字母

[英]How to convert string of caps to unicode bold caps

我想以編程方式將一串大寫字母(例如"ABC" )轉換為在 unicode 粗體大寫字母中表示相同內容的字符串(在"\\U0001d400"粗體 A "\\U0001d400"

我可以在 26 個 unicodes 的元組中逐個字符查找來做到這一點:

x='AB'
bold_unicodes = ( '\U0001d400', '\U0001d401', ..., '\U0001d419')
result = []
for c in x:
    result.append( bold_unicodes[ ord(c)-ord('A')] )
result = ''.join(result)

print(result)產生 𝐀𝐁(是的,我可以將 unicodes 復制/粘貼到 StackOverflow 中!)

但是,這真的是最好的方法嗎? 是最清楚的嗎?

為了讓自己了解bytes和 unicode 的奧秘,有沒有辦法將整數偏移量ord(c)-ord('A')與代表 26 個連續 un​​icode 基點的整數0x1d400起來? 因為小寫字母和數字有許多類似的轉換,可以轉換為粗體、斜體和其他字體。

您可以將 unicode 塊之間的偏移量相加。 在您的情況下,偏移量為119743 (基本上ord(bold_unicodes[0])-ord('A') ),因此chr(ord(char)+119743)返回與char等效的粗體。 您可以對其他轉換執行相同的操作。

一個警告:這可能是顯而易見的,但您需要確保輸入字符在正確的塊中,以免得到任何意外的輸出——例如, chr(ord('a')+119743)返回小寫粗體 '𝐠' .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM