查了很多前辈的资料,包含了与这篇同名的文章以及类似的文章,然后都没办法解决问题;所以我也写了一篇来描述我是如何搞定它的。
这几个月在折腾Flask,以前都是用SQL来自己写数据库代码,这几天发现了一个叫做SQLAlchemy 的东西,惊为天人;但是在建构SQL数据库时遇到了中文乱码的问题。搜搜网上前辈的文章也没办法解决,看文档后终于搞定了。
在我爬各位先烈的文章时,自己也做了一些假设与验证,问题是发生在SQLAlchemy 建立MariaDB数据库资料表时没有使用UTF-8字符集,所以虽然在Python物件接口是可以用UTF-8的,但是写入数据库时会报错,在PHPMyAdmin将资料表改成utf8_bin就可以正常储存中文了。
若是如此,那我们只要在SQLAlchemy建立资料表时控制它使用我们希望的字符集就可以了,我想这篇前辈的文章思考方式应该与我相仿,只是有些地方没办法动到数据库设定文件,不然该位前辈的方式应该可行。
可选的字符集可以查阅PHPMyAdmin内提供的下拉选单: