解决历程
第一次遇到这个问题的时候是找到了解决方案的,只是当时没有有意识的将它记录下来,只是依稀记得是utf8,utf-8,UTF8,UTF-8的区别。这次把四种都试过了,结果3个乱码,一个报错。
网上的方法也大多是在连接字符串中添加编码,或者使用sqlalchemy的URL类。
上述方法尝试后无果,继续搜索,找到了一个解决方案:pymssql中文乱码问题(一种可行的解决方案)_kungbx的博客-CSDN博客
将连接字符串中的编码方式改为cp936,亲测有效。
后续
虽然问题已解决,但是看着cp936这个不认识的编码(见识少了╮(╯▽╰)╭),总是感觉怪怪的。于是去了解了,原来cp936是指系统里的第936号编码格式,即GB2312的编码,CP即code page。GB2312包含了GBK。
于是,我将连接字符串中的cp936替换成了gbk,结果报错:
联想到之前UTF-8的问题,我又尝试了GBK,测试通过: