首页 新闻 会员 周边

s = '\ue1f4\n\ue89d'怎么去掉其中的\u

0
悬赏园豆:50 [已解决问题] 解决于 2019-08-27 18:07

s = '\ue1f4\n\ue89d'
def fun(s):
s.replace(r'\u','')
return s
print(fun(s))

输出:

怎样才能让它输出1f4\ne89d?

说明:是对传过来的s去掉\u,而非直接对'\ue1f4\n\ue89d'去掉\u

西野IT的主页 西野IT | 初学一级 | 园豆:19
提问于:2019-08-17 16:33
< >
分享
最佳答案
0
s = '\ue1f4\n\ue89d'


def fun(s):
    s = s.encode("unicode_escape").decode()
    s = s.replace(r'\u', '')
    return s


print(fun(s))

得到
e1f4\ne89d

收获园豆:50
Masako | 小虾三级 |园豆:1893 | 2019-08-19 18:18

大佬 能解释一下原理么?

西野IT | 园豆:19 (初学一级) | 2019-08-26 22:37

@hhwwww: 传过来的是unicode编码的字符串。你需要处理编码而不是字符串,所以encode()获取到编码,你需要按照str去替换,所以又把编码decode解码为字符串。如果使用decode("unicode_escape")就是不变的,也可以使用str()强转,但是那样单独要处理一些字符。

Masako | 园豆:1893 (小虾三级) | 2019-08-27 15:24

@Masako: 哈,虽然不是太明白,还是谢谢了~~

西野IT | 园豆:19 (初学一级) | 2019-08-27 18:06

@Masako: 大佬,能帮我解决我的另一个博问吗?刚发的

西野IT | 园豆:19 (初学一级) | 2019-09-08 17:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册