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;