私は、Python 3.5にクライアントを組み込み、サイトから完成した翻訳ジョブを取得するために使用できます。使い勝手の理由から、翻訳されたコンテンツをクリップボードにコピーするボタンを使用することに決めました。翻訳がプレーンテキストであるかファイルに保存されているかによって、ボタンには「ダウンロード」または「クリップボードにコピー」のいずれかが表示されます。tkinterスクリプトでpyperclipを使用してクリップボードに保存するときのエンコーディング
ほとんどの場合、ボタンをクリックして内容をテキストエディタに貼り付けるだけで問題なく英語のテキストをコピーして貼り付けることができます。
残念ながら、ドイツ語(ä、ö、üのようなもの)を扱うとき、私はいくつかのファンキーなキャラクターを手に入れ、日本人は変わってしまいます。
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 2.xまたは3? –
申し訳ありません、3.5。説明に追加されます! –
'# - * - coding:utf-8 - * - 'はソースコードがutf8でエンコードされていることをPythonコンパイラに伝えます。 – Gribouillis