Ich habe eine Liste von Tupeln aus einer MySQL-Datenbank erhalten.
Wenn ich versuche, einen Artikel zu drucken, hier ist das Ergebnis:Python: decode russische string
Далоев ÐлекÑандр
<class 'str'>
Dies ist CP1251, nach https://2cyr.com/decode/?lang=ru
Ich habe viele Variationen von .encode().decode()
mit errors='ignore'
params versucht, aber ohne Erfolg. Irgendwelche Ideen?
UPD Ich erhalte meine Liste der Tupel mit mysql-connector-python
.
z
ist die Liste. Das Ergebnis ist von oben 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 hier ein wierd Decoder ist. Hoffe, es wird helfen, smb.
Ich erkannte, dass das Problem in das Einfügen in meine DB ist. Will hier graben.
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
Bitte zeigen Sie den Code, der das erzeugt hat. – wallyk
Ich bin nicht so sicher über Ihre Schlussfolgerung "das ist CP1251". Wenn ich dieselbe Webseite verwende, kann ich sie in einer Vielzahl von Codierungen anzeigen, aber keine von ihnen ergibt einen vollständig lesbaren "russischen" Text. – usr2564301
Ich weiß nicht, wie es passiert. Aber nach dem Kopieren dieser Zeichenfolge ändert sich das irgendwie, also kann ich es auf dieser Website nicht verwenden. Sehr interessant – Snobby