python 中文乱码解决方案
python 处理文字内容时,常常遇到编码的问题。
汉字常用的两种编码方式为 utf8 和 gbk,解析一个 txt 文件或者一个字符串时经常会遇到编码问题。
对于一行文本,我们分别尝试用 utf8 或者 gbk 去解码,哪一个解码内容多选择哪一个
def force_decode(string:bytes) ->str: """ sometimes neither gbk nor gbk can decode succseefully from string select longger decode result from utf8 or gbk """ if not isinstance(string, bytes): raise ValueError('expected bytes array') decode_chars_count = [] for i in ['utf8', 'gbk']: try: return string.decode(i) except UnicodeDecodeError as ex: decode_chars_count.append(ex.start) # neither utf8 or gbk decode successfully # select the longer decode one utf8_len, gbk_len = decode_chars_count selected_encoding = 'utf8' if utf8_len > gbk_len else 'gbk' return string.decode(selected_encoding, errors='ignore')
代码链接:https://gist.github.com/albertofwb/b53bf32adca5c245c6dee6642ca5463d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步