我想弄清楚Mac OS X上的PyObjC,並且我寫了一個簡單的程序來打印出我的地址簿中的名字。但是,我在輸出的編碼方面遇到了一些麻煩。PyObjC中的Unicode問題
#! /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)
它已經是一個unicode字符串,可以看到u'Fernando Gonzales'。 – 2009-05-28 19:11:54
也許,是的,但是這*確實解決了問題。我不確定爲什麼,我對Python的字符串處理還不夠深入。 – 2009-05-29 09:29:09