Я собираю клиент на 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, становится все забавно.
Я надеюсь, что объяснения достаточно.
Заранее спасибо!
# -*- coding: utf-8 -*-
только сообщает компилятору python, что ваш исходный код закодирован в utf8. - person Gribouillis   schedule 12.07.2017pyperclip
? В вашем коде я вижу толькоclipboard_append()
... - person Josselin   schedule 12.07.2017