如何在tkinter python中输入bengali或Unicode语言

问题描述 投票:0回答:1

我是python中GUI平台的初学者。我创建了一个文本框,但是当我输入除英语之外的其他语言特别是孟加拉语它显示??。谁能帮我吗 。我附上我的代码和示例输出

 try:
    from tkinter import *
    import sys
except ImportError:
    from tkinter import *
    import sys

class App(object):
    def __init__(self,parent):

        self.frame1 = Frame(parent, highlightbackground="green", highlightcolor="#666D00", highlightthickness=7, width=700, height=700, bd= 10)
        self.frame1.pack()
        self.frame1.pack_propagate(False)
        parent.geometry("700x700")
        parent.resizable(0, 0)
        self.frame1.configure(background='white')


        self.text1 = Label(text="আপনার অনুচ্ছেদ পূরণ করুন (বাংলা):",font=("Lohit Bengali", 16))
        self.text1.place(x=110, y=100)

        self.T = Text(self.frame1,bd=5)
        #self.T.config(font=("helvetica"))
        #self.T.insert(END, u'ji'.encode("utf-8"))
        self.T.place(x=120, y=150, height=90, width=300)



root = Tk()
root.call('encoding', 'system', 'utf-8')
app = App(root)

root.mainloop()

当我尝试输入bengali它显示???

python tkinter utf-8 textbox anaconda
1个回答
0
投票

这里有几个方面,首先你应该声明你的源文件编码:

# -*- coding: utf8 -*-

这必须是文件中的第一行或第二行。

其次,您需要确保您的编辑器实际上保存了该编码(使用记事本++等编辑器很容易,而不知道您使用的指令会有所不同)

最后,即使python3中的字符串默认被视为unicode,最好是显式的:

self.text1 = Label(text=u"আপনার অনুচ্ছেদ পূরণ করুন (বাংলা):",font=("Lohit Bengali", 16))

注意在开场报价之前添加的u

我在我的机器上测试了这个,当我的编辑器(记事本++)没有显示字符时,字符在运行时显示在tkinter窗口上。

另外,你粘贴的代码都有相同的导入集,即如果第一个失败,那么tkinter的第二个应该大写。

© www.soinside.com 2019 - 2024. All rights reserved.