【发布时间】:2017-07-15 14:25:31
【问题描述】:
我有一个基于Flask 的项目,它使用Oracle 数据库并通过SQLAlchemy 和cx_Oracle 插件进行通信。我的问题是我有一个带有 2 Strings 的简单表:
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)
其中de encode字符根据文本的值而不同。
以下是值的示例:
object = Example()
object.title = 'É its a character with accent'
object.description = 'Á another characters with accent'
db_session.add(object)
db_session.commit()
你知道我能做些什么来解决这个问题吗?一些配置?
谢谢:)
更新:
按照建议,我尝试了其他 2 种方法:
类示例(基础): 表名 = '示例'
id = Column(Integer, primary_key=True)
title = Column(Unicode(255))
description = Column(Unicode(1024))
和
类示例(基础): 表名 = '示例'
id = Column(Integer, primary_key=True)
title = Column(String(255, convert_unicode=True))
description = Column(String(1024, convert_unicode=True))
还是同样的错误。
【问题讨论】:
标签: oracle flask flask-sqlalchemy python-3.5 cx-oracle