既爱又恨的编码格式

期待经过一段时间的积累,能够避免很多编码格式遇到的问题

Python相关

很多时候,都是utf-8和gbk两种编码格式的冲突,很多时候用记事本打开,然后指定为gbk格式另存,能够解决大部分问题,但是有时候也有些字符无法转换。所以最好是在写代码时规避这些内容!

Encode和Decode

unicode 是一种无编码格式的状态,不同的应用会自动尝试用一些自以为正确的编码格式(如utf-8、gbk)等格式解码

  • encode

    encode()方法就是将unicode编码方式转化为对应的实现方式

    str.decode(encoding=“utf-8”, errors='strict')  # 严格
  • decode

    decode()方法就是实现方式变回Unicode

    str.encode(encoding=“utf-8”, errors='ignore')  #忽略错误

写入正常,结果打开乱码

  • 写入csv,结果打开乱码

    奇技淫巧,指定编码格式为utf-8-sig,似乎这种编码格式是utf-8gbk格式的交际,具体忘记了;按道理来说应该先试一试gbk格式

    data_df.to_csv(filename.csv, index=False, encoding='utf-8-sig')

写入报错,有些字符不能转换

  • 读取json文件,写入csv报错

    原因应该是有些字符串可以使用utf-8解码显示,但是无法重新编码为gbk,就比如一些/u200,真是让人头大,奇技淫巧之忽略,先解码为gbk再编码

    answer_Full = answer_Full.encode('gbk','ignore').decode('gbk')  # 设置忽略错误

最后更新于