インスタンスがあり、その 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 インターフェイスを介してアクセスしています。
環境:
これは、COM インターフェイスを介して Python を使用して、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 を使用しています。