0
我有一個基於Flask
的項目,它使用Oracle
數據庫並通過溝槽SQLAlchemy
和cx_Oracle
插件。我的問題是,我有一個簡單的表2 Strings
:SQLAlchemy Oracle無法插入帶有重音符號
class Example(Base):
__tablename__ = 'example'
id = Column(Integer, primary_key=True)
title = Column(String(255))
description = Column(String(1024))
當我嘗試保存值與口音我得到這個錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 5: ordinal not in range(128)
在其中德編碼字符是根據不同的文本的價值。
這裏的值的例子:
object = Example()
object.title = 'É its a character with accent'
object.description = 'Á another characters with accent'
db_session.add(object)
db_session.commit()
你有什麼想法,我能做些什麼來解決這個問題?一些配置?
謝謝:)
UPDATE:
如所建議的我嘗試其他2種方式:
類實施例(鹼): 表名 = '示例'
id = Column(Integer, primary_key=True)
title = Column(Unicode(255))
description = Column(Unicode(1024))
And
類實施例(鹼): 表名 = '示例'
id = Column(Integer, primary_key=True)
title = Column(String(255, convert_unicode=True))
description = Column(String(1024, convert_unicode=True))
仍然得到了同樣的錯誤。
我試過兩種方法,仍然有同樣的錯誤。 – patricia
你有權訪問數據庫嗎?你可以驗證爲該表註冊的字符串的類型嗎? –
另外你在create_engine函數中傳遞了什麼,你在那裏添加了一個特殊的編碼嗎? –