如何在Python中获取字符Unicode值?适配中日越汉字等字符
转换Unicode字符转义结果为U+格式的方法
问题场景
已通过以下Python代码获取字符的Unicode转义结果:
text = "𬖰" br = text.encode("unicode-escape") print(br) # 输出 b'\\U0002c5b0'
需要将该结果转换为U+2C5B0或U2C5B0格式。
解决方案
方法1:处理已生成的转义结果
先将bytes类型的转义结果解码为字符串,提取有效十六进制部分后拼接目标格式:
text = "𬖰" br = text.encode("unicode-escape") # 解码为字符串并清理冗余前缀 hex_part = br.decode().replace("\\U000", "") # 生成两种目标格式 u_plus_format = f"U+{hex_part.upper()}" u_no_plus_format = f"U{hex_part.upper()}" print(u_plus_format) # 输出: U+2C5B0 print(u_no_plus_format) # 输出: U2C5B0
方法2:直接获取Unicode码点(更高效)
跳过转义步骤,用ord()直接获取字符的Unicode码点整数,再格式化为目标字符串:
text = "𬖰" codepoint = ord(text) # 格式化为大写十六进制并拼接前缀 u_plus_format = f"U+{codepoint:X}" u_no_plus_format = f"U{codepoint:X}" print(u_plus_format) # 输出: U+2C5B0 print(u_no_plus_format) # 输出: U2C5B0
这种方法无需处理转义字符串的冗余内容,对所有Unicode字符(包括中文、越南喃字、日文汉字等)都适用。
内容的提问来源于stack exchange,提问作者Charlie Fan
相关产品推荐
相关产品推荐

