最近项目中遇到一个问题,就是数据库中某些较早的记录中的中文名字显示为乱码,就像这样。
1 | 陳彥璋 # 陳彥璋 |
于是就寻思着怎样才能用Python3自动进行乱码恢复。
关键代码
先贴关键代码,下面这段函数实现了被错误解码为windows-1252
的乱码的恢复。
1 | def get_correct_value(messy_code, from_coding, to_coding): |
Python3 乱码恢复基本思路
首先我们要明白字符编码和解码的概念,对应Python3中的函数即encode()
和decode()
可以利用在线工具得到乱码之前被错误地用什么编码来解码,应该用什么编码来解码。比如说在我的例子中,乱码之所以成为乱码是因为被windows-1252
解码,但实际上应该用utf-8
解码。