Python 3+FDB:UnicodeDecodeError

Python 3+FDB:UnicodeDecodeError,python,unicode,fdb,Python,Unicode,Fdb,我想连接到使用cp1251的Firebird 2.1 DB,执行一条语句并获得结果。 我是这样做的: import fdb def get_zone(reg, sps): con = fdb.connect( dsn='172.16.16.77:database', user='SYSDBA', password='1234', sql_dialect=3, charset='WIN1251' ) cur = con.cu

我想连接到使用cp1251的Firebird 2.1 DB,执行一条语句并获得结果。 我是这样做的:

import fdb

def get_zone(reg, sps):
    con = fdb.connect(
        dsn='172.16.16.77:database',
        user='SYSDBA', password='1234',
        sql_dialect=3, charset='WIN1251'
    )
    cur = con.cursor()
    select = ("SELECT ZONE "
          "FROM ZONES "
          "WHERE ZONE_NAME LIKE "
          + reg[1:-3] + "% "
          "AND ZONE < 600000 "
          "AND ZONE NAME CONTAINING 'СПС'")
    if not sps:
        select = select[:-16] + 'NOT' + select[-17:]
    cur.execute(select)
    return cur[0]
cur.executeselect中断,出现错误UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xf0:数据意外结束 我想知道两件事:

我如何消除这个错误 在访问WIN1251编码的数据库时,Python3主要使用Unicode是否危险?如果是这样,请指导我应该做什么/避免什么/等等。 到@VivekSable问题:在错误之前,select变量包含以下字符串:
从区域中选择区域,其中区域名称(如“ССаСааааааааааааааааааааааааааа也可以不这样,但是你能像这样尝试吗?reg[1:-3].decodeutf-8@VivekSable添加.decodeutf-8引发了另一个问题:AttributeError:“str”对象没有属性“decode”@VivekSable我不知道这是否有任何关联,但reg变量始终填充以前从Windows-1251 encoded.csv读取的数据;但是,我使用encoding='cp1251'参数调用open方法,因此。。。我不知道。我很困惑。