Python中.replace方法无法正常替换非UTF-8字符的问题排查
为什么字符串替换没生效?
嘿,这个坑我之前也踩过!核心原因其实是Python的字符串是不可变对象——你调用.replace()方法的时候,它不会直接修改原字符串,而是返回一个全新的、已经完成替换的字符串。
你现在的操作是只调用了foo.replace('\u2019', "'"),但没有把返回的新字符串赋值给任何变量,原字符串foo自然不会有任何变化,所以看起来替换前后完全一样。
解决方法很简单:
- 把替换后的结果重新赋值给原变量:
foo = u'What\u2019s with the adverts?' # 必须赋值回去才能更新原变量 foo = foo.replace('\u2019', "'") print(foo) # 现在会输出: What's with the adverts? - 或者用新变量接收替换后的结果:
foo = u'What\u2019s with the adverts?' new_foo = foo.replace('\u2019', "'") print(new_foo) # 输出替换后的字符串
记住哦,Python里所有字符串操作方法(比如strip()、upper()、split()等等)都是返回新字符串,不会改变原对象本身,这是字符串不可变性的特性导致的。
内容的提问来源于stack exchange,提问作者user3081458
相关产品推荐
相关产品推荐

