我有一个实例,我想获得它的 Unicode 表示。Unicode 函数 Unicode () 只接受字符串或缓冲区,所以如果我直接传递实例会出错。
我试过这个:
document = self.grammar.application.ActiveDocument
style_map = [( unicode(s, 'utf-8'), s) for s in document.Styles]
self.styles.set(dict(style_map))
我收到此错误:
style_map = [( unicode(s, 'utf-8'), s) for s in document.Styles]
TypeError: coercing to Unicode: need string or buffer, instance found
我想知道如何将这些实例转换为 Unicode 字符串表示。我没有实现这些对象。我通过 COM 接口访问它们。
语境:
这是使用 Python 通过 COM 接口访问 Word 文档中可用格式样式的代码。如果我只是尝试将对象转换为 ASCII 字符串,则会收到以下错误:
style_map = [( unicode(s), s) for s in document.Styles]
File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 207, in __str__ return str(self.__call__())
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 3: ordinal not in range(128)
我宁愿在我的代码上处理这个问题,而不是修改一些 Win32 代码。如您所见,我使用的是 Python 2.6。