Mac OS X で PyObjC を理解しようとしています。アドレス帳に名前を出力する簡単なプログラムを作成しました。ただし、出力のエンコードに問題があります。
#! /usr/bin/env python
# -*- coding: UTF-8 -*-
from AddressBook import *
ab = ABAddressBook.sharedAddressBook()
people = ab.people()
for person in people:
name = person.valueForProperty_("First") + ' ' + person.valueForProperty_("Last")
name
このプログラムを実行すると、出力は次のようになります。
...snip...
u'Jacob \xc5berg'
u'Fernando Gonzales'
...snip...
文字列がユニコードである理由を誰かが説明してもらえますか?しかし、内容はそのように見えますか?
また、名前を印刷しようとするとエラーが発生することにも気付きました
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 6: ordinal not in range(128)