i have so many text label in my gui app that are not english. so I am getting unicode error.
leaveBtn = Button(top_frame_label, text= u"G�rev Y�k�n� Ay�r".decode(errors='replace') , width = 15)
^
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xf6 in position 1: invalid start byte
in the first code I wrote I didn't get any error until I use an array that has so many strings that have non-english literals. because it is an array before using them I encoded them and then decoded them when I use them. (I added the code) I haven't had any other unicode issues.
from tkinter import *
root = Tk()
root.state('zoomed')
teleTitle_f_tab2 = ["Takım no: ","Paket no: ","Zaman: ",
"G.Y. Basıncı: ","T. Basıncı: ",
"Nem: ",
"G.Y. Yüksekliği: ","T. Yüksekliği: ",
"İrtifa Farkı: ","İniş Hızı: ","Sıcaklık: ","Pil Gerilimi: ",
"G.Y. Latitude: ","G.Y. Longitude: ","G.Y. Altitude: ",
"T. Latitude: ","T. Longitude: ","T. Altitude: ",
"Durum: ",
"Pitch: ","Roll: ","Yaw: ",
"Dönüş Sayısı: ","Video Aktarım Bilgisi: ", " "]
for i in range(0,25):
teleTitle_f_tab2[i] = teleTitle_f_tab2[i].encode('UTF-8')
data = 0
for col in range(5):
for rw in range(5):
textData = Label(root, text= teleTitle_f_tab2[data].decode(), anchor = "w",width= 28)
textData.grid(row=rw, column=col, padx=5, pady=10)
data = data +1
root.mainloop()
then I moved my code to another .py file because they were so messy. and now I'm getting unicode errors. First, I wrote before every text u""
but it couldn't help. then i tried .decode(errors='replace')
in my first text that has non-english literal as you can see above. but it couldn't help too. and also I tried u"ascii_text".encode('UTF-8').decode()
but it doesn't work too. every time same error. what can I do now? I have so much text like this in buttons, frame titles, or labels.
edit: the code ran in python idle properly but doesn't work in visual studio.
I found a solution while searching. I hope it would help you if you have the same problem. the solution is simply to save your file as an encoding: Unicode (UTF-8 Without signature).