最近所写的代码中需要用到python去连接MySql数据库,因为是用PyQt5来构建的GUI,原本打算使用PyQt5中的数据库连接方法,后来虽然能够正确连接上发现还是不能提交修改内容,最后在qq交流群中有网友说自己遇到这种问题都是使用第三方的方法来解决,于是我便想起了用 PyMySql 这个Python连接Mysql的库来进行实现,一切都很顺,但是只有到了中文内容的读取时总是出现各种乱码。
sql="select id, title, pub_date, pub_url from message_info" cursor.execute(sql) result=cursor.fetchall() for each in result: each[1].encode('latin1').decode('utf-8')
上面的代码可以使查询到的 MySql 数据 中的中文不出现乱码。
也就是说 调用 pymysql 返回的 含有中文字符的字符串 这里是 each[1] , 对它进行解码,用 latin1 进行解码, 然后使用 utf-8 再进行编码便可以得到正确的中文字符。