pymysql не выводит русский язык из БД mySQL

import pymysql

import pymysql.cursors

try:
        db = pymysql.connect(
        host="localhost",
        port=3306,
        user="***",
        password="*****",
        database="db_course",
        charset="utf8",
        
        cursorclass=pymysql.cursors.DictCursor
)
        print("connected")
except Exception as ex:
        print("no")
        print(ex)

test="select abonent.first_name from abonent"
cursor = db.cursor()
cursor.execute(test.encode('utf8'))
result=cursor.fetchall()
print(str(result))

вот, что выводит:

[{'first_name': 'ƒ«¥¡'}, {'first_name': '\x8f\xa0¢¥«'}, {'first_name': '\x8d¨ª¨â\xa0'}]'''

Ответы (1 шт):

Автор решения: Nonen_Hook

Проблема в кодировке самой базы, вам нужно перевести кодировку в UTF-8 Это можно сделать таким SQL запросом:

ALTER DATABASE db_course
    CHARACTER SET utf8
    COLLATE utf8_general_ci;

То же самое надо сделать и с полями в таблице

ALTER TABLE abonent
    MODIFY first_name VARCHAR(255)
    CHARACTER SET utf8
    COLLATE utf8_general_ci;
→ Ссылка