Crossin的编程教室

标题: python flask SQLSERVER2008 [打印本页]

作者: emerson2046    时间: 2021-10-18 14:54
标题: python flask SQLSERVER2008
本帖最后由 emerson2046 于 2021-10-18 15:00 编辑

说明:1.从数据库中查询到的内容返回到web页面上。
          2.SQLSERVER2008用得编码是gbk
         3.python程序链接数据库的时候用得编码是utf-8
         4.从数据库取出的字段就是乱码

@app.route('/date')
def data_func():
    submit_value = request.args.get('date')  # submit string
    conn = pymssql.connect("192.168.102.155", 'his', 'xxwlzx8y', 'xhlisdb_tem',charset='utf8')
    if  conn:
        cursor = conn.cursor()
        cursor.execute('select blood_name from bis_blood_type')

        #u=u.decode('gbk').encode('utf-8')
        # print (cursor.fetchone())
        u = cursor.fetchall()
        #u = u.decode('gbk').encode('utf-8')
        print(str(u[0]).encode('utf-8').decode('utf-8'))
        return render_template('form.html', u=u)
请大家帮助解决下!感谢

作者: crossin先生    时间: 2021-10-18 16:32
1. 既然你数据库设置的gbk,连接数据库也应该用gbk

2. 如果设置成gbk依然不行,你可以先通过数据库软件,确认你数据库里的字符是不是正常的。如果软件里的都不对,那就跟你的代码无关,是数据采集时候的问题

3. 你的网页也需要在html的头部设置一下编码为gbk

4. py3的print不需要自己设置编码。如果你需要判断编码,可以用第三方的 chardet 库来检测一下字符的编码类型(字符越长,检测准确率越高)




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5