最近在用flask写一个web应用,需要存储用户发表的内容,可能含有 emoji 等内容,但是在存储的时候总是报错 (_mysql_exceptions.OperationalError) (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB2' for column 'content' at row 1")
,一直以为问题出在数据库端,可是数据库端全部更改为 utf8mb4
还是报错。终于通过查资料发现问题是在 flask-sqlalchemy 默认的字符集设置是不支持 emoji 的 utf8,解决如下:
SQLALCHEMY_DATABASE_URI = '数据库连接配置?charset=utf8mb4'
在数据库连接后指明编码为utf8mb4
ps: 我的配置是通过一个config类来实现的,参考自己的配置,改好数据编码后,在数据库连接URI后 添加 ?charset=utf8mb4
即可,如:
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接配置?charset=utf8mb4'
flask + sqlalchemy 存储emoji
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
- 参考1:http://blog.csdn.net/happy_bigqiang/article/details/5...
- 『导言』 iOS开发中用SDWebImage第三方框架,如何改变进行图片缓存的文件夹的名称?下载:SDWebIma...