如何移除/替换字符串中的ⁿ字符?解决Unicode编码错误
问题解决
核心问题1:字符串替换未生效
Python的字符串是不可变对象,replace()方法不会修改原字符串,而是返回一个新的字符串。你的代码里没有把替换后的结果赋值给变量,所以原字符串完全没变化。
核心问题2:打印时的编码错误
报错是因为终端(比如Windows CMD)默认编码不支持ⁿ(U+207F)这个字符,当你尝试打印原字符串时,终端无法编码该字符导致报错。如果替换成功,字符串里已经没有这个字符,自然不会触发这个错误。
修正后的代码
string = "000000ⁿ0000" # 把替换后的结果赋值给原变量 string = string.replace('ⁿ', "-") # 或者直接用Unicode码点替换,二选一即可 # string = string.replace('\u207f', "-") print(string)
额外的终端编码处理(如果需要保留原字符打印)
如果后续需要打印包含这类特殊字符的字符串,可以强制指定print的输出编码为UTF-8:
import sys string = "000000ⁿ0000" sys.stdout.buffer.write(string.encode('utf-8') + b'\n')
内容的提问来源于stack exchange,提问作者Artem
相关产品推荐
相关产品推荐

