Этот вопрос закрыт для ответов, так как повторяет вопрос UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 7: invalid continuation byte?
@razrab228
html, люблю больше php.

Почему возникает ошибка UnicodeDecodeError?

Здравствуйте! Возникла ошибка при подключении к базе данных Firebird:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 67: character maps to <undefined>

Вот код:
def base_connect():
    main_config_file = 'base.ini'
    settings = configparser.ConfigParser()
    settings.read(main_config_file)
    try:
        main_base = fdb.connect(host=settings['BASE']['host'], database=settings['BASE']['path'], user=settings['BASE']['user'], password=settings['BASE']['password'], charset='UTF8')
        base_cursor = main_base.cursor()
        return main_base
    except Error as e:
        print(e)
        echo_message('error', "Ошибка подключения к базе данных:\n" + str(e))
        raise SystemExit()


Не подскажете, как решить это?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что по умолчанию конфигурация читается, как файл в ansi-кодировке. Если файл содержит символы отличные от латинских, то раскодировать их не получится. Решить можно так:
with open(main_config_file, encoding='utf-8') as fh:
    settings.readfp(fh)
    # Весь остальной код, использующий settings
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы