Как я могу отобразить 2-байтовые буквы из Oracle базы данных с Python? - PullRequest
0 голосов
/ 13 февраля 2020

Я только начал учиться python. Поэтому я хотел бы заранее извиниться за этот вопрос низкого уровня.

Следующий код предназначен для вывода данных из базы данных в окне сообщения, и когда данные содержат две байтовые буквы (например, «KANJI» или что-то), эта ошибка возникала каждый раз.

"UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x87 in position 11: illegal multibyte sequence"

Как я могу решить эту проблему ??

# -*- coding: utf-8 -*-
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import cx_Oracle

def foo():
    HOST = "99.99.99.99"
    PORT = 1521
    SID = "XXXXX"

    tns = cx_Oracle.makedsn(HOST, PORT, SID)
    conn = cx_Oracle.connect("XXXXXX", "XXXXXX", tns)

    cur = conn.cursor()
    cur.execute("SELECT ITEMNAME FROM MA_ITEM WHERE ITEMID='" + t.get() + "'")


    row = cur.fetchall()
    for r in row:
        messagebox.showinfo("RESULT", r[0])
        break



root = Tk()
root.title('My First App')
frame1 = ttk.Frame(root)
label1 = ttk.Label(frame1, text='ITEMID:')

t = StringVar()

entry1 = ttk.Entry(frame1, textvariable=t) 
button1 = ttk.Button(frame1, text='OK', command=foo)

frame1.grid(row=0,column=0,sticky=(N,E,S,W))
label1.grid(row=1,column=1,sticky=E)
entry1.grid(row=1,column=2,sticky=W)
button1.grid(row=2,column=2,sticky=W)

for child in frame1.winfo_children():
    child.grid_configure(padx=5, pady=5)

root.mainloop()

Если кто-то скажет мне, я был бы так счастлив! Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...