我正在尝试在 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...
有人可以解释为什么字符串是 unicode,但内容看起来像这样吗?
我还注意到,当我尝试打印名称时出现错误
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 6: ordinal not in range(128)