1
私は、mySQLデータベースからタプルのリストを受け取った。
私はここに、アイテムを印刷してみた結果です:Python:デコードロシア語の文字列
Далоев ÐлекÑандр
<class 'str'>
は、これは私がerrors='ignore'
のparamsでなく、任意の成功なし.encode().decode()
のバリエーションの多くを試してみましたhttps://2cyr.com/decode/?lang=ru
によると、CP1251です。何か案は?
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に役立つことを願っています。
問題が私のDBに挿入されていることに気付きました。ここで掘るだろう。
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
それを生成したコードを表示してください。 – wallyk
"これはCP1251です"というあなたの結論はあまりよく分かりません。その同じWebページを使って、さまざまなエンコーディングで見ることができますが、どれも完全な読みやすい "ロシア語"のテキストにはなりません。 – usr2564301
どうしたのか分かりません。 しかし、ここでこの文字列をコピーした後、何とか変わってしまいますので、このウェブサイトでは使用できません。非常にスタンゲ – Snobby