请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 6019|回复: 1

python flask SQLSERVER2008

[复制链接]

1

主题

0

好友

5

积分

新手上路

Rank: 1

发表于 2021-10-18 14:54:04 |显示全部楼层
本帖最后由 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)
请大家帮助解决下!感谢
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2021-10-18 16:32:02 |显示全部楼层
1. 既然你数据库设置的gbk,连接数据库也应该用gbk

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

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

4. py3的print不需要自己设置编码。如果你需要判断编码,可以用第三方的 chardet 库来检测一下字符的编码类型(字符越长,检测准确率越高)
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 16:51 , Processed in 0.015006 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部