我一直在使用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
。
我很欣赏有关如何解决这些问题的意见。 感谢。
答案 0 :(得分:0)
我解决了!经过大量的搜索,我发现这篇文章: Troubles with clipboard in Python
解决方案就像编辑复制功能一样简单:
win32clipboard.GetClipboardData( win32clipboard.CF_UNICODETEXT)
这解决了任何人都遇到的问题。