You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何让构造的Unicode转义字符串与实际Unicode字符相等

解决var1与var2相等的问题

问题核心:你当前的var1是原始字符串(raw string),其中的\U000是字面字符,未被Python解析为Unicode转义序列;而var2是直接解析后的Unicode emoji字符,因此两者不相等。

下面提供两种可行的修改方案,都能让var1被解析为对应emoji,从而与var2相等:

方案1:使用ast.literal_eval解析转义序列

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import ast

var1 = '1F1EB 1F1F7'
var1 = re.sub(r' ', r'\U000', var1)
var1 = f'\\U000{var1}'  # 不用原始字符串,保留转义序列的字面形式
var1 = ast.literal_eval(f'"{var1}"')  # 解析字符串中的转义序列
var2 = '\U0001F1EB\U0001F1F7'

if var1 == var2:
    print('true')
print(type(var1))
print(var1)
print(type(var2))
print(var2)

方案2:使用codecs.decode处理Unicode转义

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import codecs

var1 = '1F1EB 1F1F7'
var1 = re.sub(r' ', r'\U000', var1)
var1 = f'\\U000{var1}'
var1 = codecs.decode(var1, 'unicode_escape')  # 专门解析Unicode转义序列
var2 = '\U0001F1EB\U0001F1F7'

if var1 == var2:
    print('true')
print(type(var1))
print(var1)
print(type(var2))
print(var2)

两种方案执行后,都会输出你期望的结果:

true
<class 'str'>
🇫🇷
<class 'str'>
🇫🇷

内容的提问来源于stack exchange,提问作者Randomize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:42:50