• Python3 报错'latin-1' codec can't encode character 解决方案


    Python3 报错'latin-1' codec can't encode character 解决方案

    在更新数据库操作时,报错:

    UnicodeEncodeError: 'latin-1' codec can't encode character 'uff08' in position 21: ordinal not in range(256)

    在百度后得到三种解决方法,其中个人认为第三种最方便。

    1. 处理字符串

    代码省略

    2. 设置数据库编码

    一种方法是在连接数据库时设置

    db.set_charset('utf-8')
    cursor.execute('SET NAMES utf8;')
    cursor.execute('SET CHARACTER SET utf8;')
    cursor.execute('SET character_set_connection=utf8;')
    

    然而我在用了这种方法后是没有用的。

    另外一种设置数据库编码的方式是更改配置文件。
    • 可以通过 db.set_charset('utf-8')查询数据库编码

    • windows更改数据库编码

      1、在mysql的安装目录下找到my.ini文件(如果没有的话就把my-medium.ini复制,然后重命名为my.ini即可)在mysql5.7中是my-default文件。

      2、在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

      3、重启mysql服务

    • Linux更改数据库编码

      • mysql 5.5版本下
      1. 打开配置文件,我的配置文件是在 /etc/mysql/my.cnf
      2. 在[client]和[mysqld]字段下面均添加default-character-set=utf8,保存并关闭
      3. 重启mysql服务
      • mysql 5.5版本以上
      1. 打开配置文件,我的配置文件是在 /etc/mysql/my.cnf

      2. [mysqld]下添加:

        character-set-server=utf8

        collation-server=utf8_general_ci

      3. 重启mysql服务

      • 设置成功后的编码

    3.在连接数据库时设置参数

    db = pymysql.connect("localhost","root","00000000","TESTDB" ,use_unicode=True, charset="utf8")

    设置use_unicode 和charset参数

    参考博客:
    https://blog.csdn.net/wanglingxxx/article/details/52049278

    https://blog.csdn.net/u010663668/article/details/54881998

    https://blog.csdn.net/shuifa2008/article/details/9254389

  • 相关阅读:
    python虚拟环境--virtualenv
    求导法则和高阶导数
    restful规范
    python协程--yield和yield from
    打印质数
    更改docker的存储位置
    同台ECS安装多个mysql
    jenkins + gitlab + harbor + k8s 部署项目
    jenkins 配置maven
    gitlab + jenkins 持续集成
  • 原文地址:https://www.cnblogs.com/shitou6/p/8990162.html
Copyright © 2020-2023  润新知