Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tkinter脚本中使用pyperclip保存到剪贴板时进行编码_Python_Tkinter_Pyperclip - Fatal编程技术网

Python 在tkinter脚本中使用pyperclip保存到剪贴板时进行编码

Python 在tkinter脚本中使用pyperclip保存到剪贴板时进行编码,python,tkinter,pyperclip,Python,Tkinter,Pyperclip,我正在用Python 3.5集成一个客户端,可以用来从站点检索完成的翻译作业。出于可用性原因,我决定使用按钮将翻译后的内容复制到剪贴板。根据翻译是纯文本还是保存在文件中,按钮显示“下载”或“复制到剪贴板” 这是工作的大部分-我可以复制和粘贴英文文本没有问题,点击按钮,然后粘贴到一个文本编辑器的内容 不幸的是,我在处理德语(像ä、ö和ü之类的东西)和日语时会遇到一些古怪的角色 def retrieveJobs(self): availableJobIDs = gengo.getTra

我正在用Python 3.5集成一个客户端,可以用来从站点检索完成的翻译作业。出于可用性原因,我决定使用按钮将翻译后的内容复制到剪贴板。根据翻译是纯文本还是保存在文件中,按钮显示“下载”或“复制到剪贴板”

这是工作的大部分-我可以复制和粘贴英文文本没有问题,点击按钮,然后粘贴到一个文本编辑器的内容

不幸的是,我在处理德语(像ä、ö和ü之类的东西)和日语时会遇到一些古怪的角色

 def retrieveJobs(self):

     availableJobIDs = gengo.getTranslationJobs(status='reviewable')['response']

         text_count = 0
         text_dict = {}
         file_count = 0
         file_dict = {}

         for i in range(len(availableJobIDs)):

         job = gengo.getTranslationJob(id=availableJobIDs[i]['job_id'])['response']['job']

         title = job['slug']
         titleLabel = tk.Label(self, text=title)
         titleLabel.grid(row=i+3, sticky=tk.E)


         if 'file_url_tgt' in job.keys():
                link = job['file_url_tgt']
                file_dict[file_count] = link
                linkButton = tk.Button(self, text='ダウンロード', 
                                       command=lambda file_count=file_count: urllib.request.urlopen(url=file_dict[file_count]))
                linkButton.grid(row=i+3, column=1, sticky=tk.W+tk.E)
                file_count += 1
         else:
                text = job['body_tgt']
                text_dict[text_count] = text
                copyButton = tk.Button(self, text='訳文をコピーする', 
                                       command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
                copyButton.grid(row=i+3, column=1, sticky=tk.W)
                text_count += 1
脚本的开头用

# -*- coding: utf-8 -*-
但是,当我按其中一个按钮复制日语文本时,如

これはどのように動作し、すべての順序のどこに表示する短いテキストです。
(不要介意它的意思,这是胡言乱语)并将其复制到Word文件中,生成的文本如下所示:

これはどのように動作し、すべての順序のどこに表示する短いテキストです。
copyButton = tk.Button(self, 
                       text='訳文をコピーする', 
                       command=lambda text_count=text_count: root.clipboard_append(text_dict[text_count]))
如何修改代码以正确显示日语字符?从代码中可以看出,文本存储在字典中,并且在这一点上仍然完好无损。只有当用pyperclip把它拔出来时,它才会变得很时髦

我希望这个解释是充分的


提前谢谢你

我只需要在这里做一个小的调整:

copyButton = tk.Button(self, 
                       text='訳文をコピーする', 
                       command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
功能版本如下所示:

これはどのように動作し、すべての順序のどこに表示する短いテキストです。
copyButton = tk.Button(self, 
                       text='訳文をコピーする', 
                       command=lambda text_count=text_count: root.clipboard_append(text_dict[text_count]))
不再有德语或日语的时髦角色。法语和汉语等其他语言现在也可以使用了


再次感谢您的投入!它帮助我们对代码有了新的认识。

Python2.x或3?对不起,3.5。将添加到描述中!
#-*-编码:utf-8-*-
只告诉python编译器您的源代码是用utf8编码的。谢谢您的评论!所以我需要告诉pyperclip单独获取UTF-8中的信息?我该怎么做呢?嗨@Vash,你在用
pyperclip
?在您的代码中,我只看到
clipboard\u append()
…根
指向程序的主框架(通过
tk.tk()
方法),该框架在定义所有类之后启动。我决定尝试将复制方法绑定到程序的不同级别,并从最基本的
root
窗口开始。令我惊讶的是,它立即起了作用。