Python: 解码俄语字符串
Python: decode russian string
我从 mySQL 数据库收到了一个元组列表。
当我尝试打印一个项目时,结果如下:
Далоев ÐлекÑандр
<class 'str'>
这是cp1251,根据https://2cyr.com/decode/?lang=ru
我尝试了很多 .encode().decode()
和 errors='ignore'
参数的变体,但没有成功。有什么想法吗?
UPD
我收到带有 mysql-connector-python
.
的元组列表
z
是列表。以上结果来自z[0][0]
def select_name(add):
z = []
try:
dbconfig = read_db_config()
conn = MySQLConnection(**dbconfig)
cursor = conn.cursor()
cursor.execute("select name from phone_add where ph_add = " + str(add) + ";")
row = cursor.fetchone()
while row is not None:
z.append(row)
row = cursor.fetchone()
return z
except Error as e:
print(e)
finally:
cursor.close()
conn.close()
Upd2
这是一个奇怪的解码器。
希望对smb有帮助。
我意识到问题出在插入我的数据库中。会挖这里
q = string
codings = ['latin1', 'utf8', 'cp1251', 'unicode-escape', 'cp866']
exceptions = ['ignore', 'strict', 'xmlcharrefreplace', 'backslashreplace']
for i in codings:
for j in codings:
for z in exceptions:
for p in exceptions:
try:
print(q.encode(i, errors=z).decode(j, errors=p) + '<------' + i + ' ' + j + ' ' + z + ' ' + p)
except:
pass
问题出在数据库中。
刺在插入过程中已经损坏。
我在我的插入脚本中尝试了 mysql_set_charset('utf8');
,一切正常。
我从 mySQL 数据库收到了一个元组列表。
当我尝试打印一个项目时,结果如下:
Далоев ÐлекÑандр
<class 'str'>
这是cp1251,根据https://2cyr.com/decode/?lang=ru
我尝试了很多 .encode().decode()
和 errors='ignore'
参数的变体,但没有成功。有什么想法吗?
UPD
我收到带有 mysql-connector-python
.
z
是列表。以上结果来自z[0][0]
def select_name(add):
z = []
try:
dbconfig = read_db_config()
conn = MySQLConnection(**dbconfig)
cursor = conn.cursor()
cursor.execute("select name from phone_add where ph_add = " + str(add) + ";")
row = cursor.fetchone()
while row is not None:
z.append(row)
row = cursor.fetchone()
return z
except Error as e:
print(e)
finally:
cursor.close()
conn.close()
Upd2 这是一个奇怪的解码器。 希望对smb有帮助。
我意识到问题出在插入我的数据库中。会挖这里
q = string
codings = ['latin1', 'utf8', 'cp1251', 'unicode-escape', 'cp866']
exceptions = ['ignore', 'strict', 'xmlcharrefreplace', 'backslashreplace']
for i in codings:
for j in codings:
for z in exceptions:
for p in exceptions:
try:
print(q.encode(i, errors=z).decode(j, errors=p) + '<------' + i + ' ' + j + ' ' + z + ' ' + p)
except:
pass
问题出在数据库中。
刺在插入过程中已经损坏。
我在我的插入脚本中尝试了 mysql_set_charset('utf8');
,一切正常。