zoukankan      html  css  js  c++  java
  • 关于编码问题,报错:'gbk' codec can't encode character 'u3164' in position 0: illegal multibyte sequence

    之前经常在写入文件的时候遇到这种报错,

    'gbk' codec can't encode character 'u3164' in position 0: illegal multibyte sequence

    之前的解决方式是使用try...except语句把报错的不写入,这样虽然能解决程序报错停止的问题,但是会少写入一些信息

    网上各种解答都没什么用,试过了根本没法解决问题,于是今天用自己理解的方式尝试,居然成功了:

    解决同样是try...except语句,只不过多一个except写入的方式

    try:
    with open("test.txt","a") as f:
    f.write(name+" ")
    except UnicodeEncodeError:
    with open("test.txt","a") as f:
    f.write(name.encode("gbk","ignore").decode("gbk")+" ")
    except Exception as e:
    print(e)

      开始使用默认的编码方式写入,即"utf-8"

    当出现编码异常的时候尝试使用"gbk"编解码,其中使用"ignore"忽略无法编码的特殊字符

    这样既可以写入信息,又可以不报错,一举两得

  • 相关阅读:
    18软工实践-第三次作业-结对项目1
    结对作业之代码规范
    ALPHA(7)
    ALPHA(6)
    ALPHA(五)
    404 Note Found 现场编程
    ALPHA(四)
    ALPHA冲刺(三)
    ALpha冲刺(二)
    ALPHA 冲刺(一)
  • 原文地址:https://www.cnblogs.com/gopythoner/p/6619211.html
Copyright © 2011-2022 走看看