gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:30 26 4
gpt4 key购买 nike

我正在使用 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文件,生成的文本如下所示:

これはどのように動作し、すべての順序のどこに表示する短いテキストです。

如何修改代码以正确显示日语字符?从代码中可以看出,文本存储在字典中,并且此时仍然完好无损。只有当用 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]))

德语或日语中不再有时髦的字符。其他语言(例如法语和中文)现在也可以使用。

再次感谢您的投入!它对于获得对代码的新视角有很大帮助。

关于python - 在 tkinter 脚本中使用 pyperclip 保存到剪贴板时进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com