首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何将带有变体选择器的单曲转换为字符串并正确地呈现它

python如何将带有变体选择器的单曲转换为字符串并正确地呈现它
EN

Stack Overflow用户
提问于 2020-10-22 20:58:43
回答 1查看 239关注 0票数 1

在Python3中,是否有一种方法可以正确地将"0x9f8d0xe0100“和"0x9f8d0xe0101”等单曲转换为字符串,以便我们能够可视化这些变化选择器产生的差异?

基表意文字0x9f8d是CJK的“龍”。通过可视化,我的意思是在使用合适的字体时,最大限度地实现可移植性,如终端、文本文件等。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-24 05:52:36

这是一种非常奇怪的字符串格式,但是如果这是真正的字符串格式,您可以使用正则表达式来解析这些值。如果代码之间没有分隔符,则表达式需要负前瞻以防止读取"9f8d0“而不是"9f8d”。

  • 匹配“0x”
  • 匹配一个或多个十六进制数字。
  • 在"x"

之前不匹配一个数字。

re.sub可以将一个函数作为替换函数。在本例中,使用基16将正则匹配的十六进制数字字符串转换为整数,然后将其转换为Unicode代码点。

代码语言:javascript
复制
import re
for text in ("0x9f8d0xe0100","0x9f8d0xe0101"):
    result = re.sub(r'0x([0-9a-f]+)(?!x)',lambda m: chr(int(m.group(1),16)),text)
    print(ascii(result),result)

输出:

代码语言:javascript
复制
'\u9f8d\U000e0100' 龍
'\u9f8d\U000e0101' 龍
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64490464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档