使用win32clipboard从剪贴板复制和粘贴Unicode字符(特别是希伯来语)

时间:2017-05-19 20:19:21

标签: python unicode

我一直在使用UTF8编码/解码遇到麻烦。 我想要做的是从Windows剪贴板复制文本,更改它并粘贴结果。

为此,我创建了一个希伯来字母作为键和我想要分配的相应新字母的字典。

这是我使用的代码示例:

# !/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.当我从剪贴板中获取数据并打印它以查看所提取的内容时,所有内容都会获得"???"

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 个答案:

答案 0 :(得分:0)

我解决了!经过大量的搜索,我发现这篇文章: Troubles with clipboard in Python

解决方案就像编辑复制功能一样简单:

win32clipboard.GetClipboardData( win32clipboard.CF_UNICODETEXT)

这解决了任何人都遇到的问题。