在Python3中,是否有一种方法可以正确地将"0x9f8d0xe0100“和"0x9f8d0xe0101”等单曲转换为字符串,以便我们能够可视化这些变化选择器产生的差异?
基表意文字0x9f8d是CJK的“龍”。通过可视化,我的意思是在使用合适的字体时,最大限度地实现可移植性,如终端、文本文件等。
谢谢!
发布于 2020-10-24 05:52:36
这是一种非常奇怪的字符串格式,但是如果这是真正的字符串格式,您可以使用正则表达式来解析这些值。如果代码之间没有分隔符,则表达式需要负前瞻以防止读取"9f8d0“而不是"9f8d”。
之前不匹配一个数字。
re.sub可以将一个函数作为替换函数。在本例中,使用基16将正则匹配的十六进制数字字符串转换为整数,然后将其转换为Unicode代码点。
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)输出:
'\u9f8d\U000e0100' 龍
'\u9f8d\U000e0101' 龍https://stackoverflow.com/questions/64490464
复制相似问题