2017-05-19 14 views
0

私はUTF8エンコーディング/デコードでいくつかの問題にぶち当たっています。 私は何をしたいのWindowsクリップボードからテキストをコピーし、変更し、結果を貼り付けることです。win32clipboardを使用してクリップボードからUnicode文字(特にヘブライ語)をコピー&ペーストする

これを行うには、ヘブライ文字をキーにして対応する新しい文字を割り当てる辞書を作成しました。ここ

は、私が使用したコードの例です:

# !/usr/bin/env python 
# -*- coding: utf-8 -*- 

hebToEng = {u"א":"t", u"ב":"c", u"ג":"d"} 

win32clipboard.OpenClipboard() 
data = win32clipboard.GetClipboardData().encode('utf-8') 
win32clipboard.CloseClipboard() 
print data 
for i in range(0, len(data)): 
    data[i] = hebToEng[data[i]] 
print data 

"אבג"をコピーするときに、私は"dct"が印刷されている必要があります。

私は上記のコードでいくつかの問題を抱えて:

1.when私は、クリップボードからデータを取得し、抽出して得たものを見るためにそれを印刷し、すべてが"???"を取得することです。

2.pythonは、私は次のコードスニペットを実行しようとした場合、私はキーとしてヘブライ文字で辞書にアクセスすることはできません:。

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

hebToEng = {u"א":"t", u"ב":"c", u"ג":"d"} 

data = u"אאבג" 
for i in range(0,len(data)): 
    data[i] = hebToEng[data[i]] 
print data 

を私は「TypeError: 'unicode' object does not support item assignmentを取得

私がいただければ幸いですどのようにこれらの問題を解決するための入力 おかげ

+1

後者の場合、(Unicodeを含む)文字列は不変です。新しい変数を使用して、それらをループするときに文字を追加します。 – zwer

+0

うわー、あなたは正しいと私は完全に忘れて、ありがとう! – Shak

答えて

0

私の検索の多くは、この記事を見つけた後、私はそれを解決:。。 Troubles with clipboard in Python

溶液を、コピー機能を編集するのと同じくらい簡単です:

win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT) 

これは、それが今まで誰にも発生する問題を解決します。

関連する問題