Моя реализация выглядит так: Centos Server, MySQL с сервером Rails и в настоящее время работает над новым приложением для бутылок.bottle_mysql Ошибка кодирования
У меня есть база данных, в которой я хочу поделиться датой в приложении Rails и Bottle. Некоторые данные в моей БД находятся в греческом.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import bottle
import bottle_mysql
app = bottle.Bottle()
# dbhost is optional, default is localhost
plugin = bottle_mysql.Plugin(dbuser='user', dbpass='pass' , dbname='db')
app.install(plugin)
@app.route('/show/<item>')
def show(item, db):
db.execute('SELECT * from visitors where id=1')
row = db.fetchone()
if row:
print row['first_name'].decode("utf-8", "replace")
return template('showitem', page=row)
print "Empty"
return HTTPError(404, "Page not found")
app.run(host='domain.tld', port=8080)
Запись в моей БД являются одна строка в греческом (ID = 1) и один на английском языке (ID = 2) Без установки кодировки во время соединения: я не получаю ошибки при использовании ID = 2 Я получаю эту ошибку при использовании ID = 1
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
Подключение к БД так:
plugin = bottle_mysql.Plugin(dbuser='user', dbpass='pass , dbname='db', charset='utf-8')
Я получаю эту ошибку:
Любое обходное решение для такого рода ошибок?
UPDATE: Я изменил кодировку на моей строке подключения на «utf8» и вернулся к первой ошибке.
'SHOW CREATE TABLE'. Покажите нам параметры подключения. 'SELECT col, HEX (col) ...', чтобы мы могли видеть, что было сохранено. –
Не может Python работать непосредственно в utf8, и не нужно 'decode()'? –
@RickJames, я не могу видеть, как это необходимо, вы можете увидеть запрос на выборку выше, здесь схемы в целом: ID - INT (11) AI PK first_name - VARCHAR (255) last_name - VARCHAR (255) электронная почта - VARCHAR (255) student_id - INT (11) created_at - DateTime updated_at - DateTime looks_part_time - TINYINT (1) looks_full_time - TINYINT (1) looks_intership - TINYINT (1) looks_research - TINYINT (1) looks_master - tinyint (1) looks_phd - tinyint (1) university_id - int (11) university_department_id - int (11) research_level - varchar (255) –