Это работает:
from BeautifulSoup import BeautifulStoneSoup
s = "U.S. Adviser’s Blunt Memo on Iraq: Time ‘to Go Home’"
decoded = BeautifulStoneSoup(s, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
Если вы хотите использовать строку вместо объекта Unicode, вам нужно будет декодировать ее в кодировку, которая поддерживает используемые символы; ISO-8859-1 не:
result = decoded.encode("UTF-8")
К сожалению, вам нужен внешний модуль для чего-то подобного; простое декодирование сущностей HTML / XML должно быть в стандартной библиотеке и не требовать от меня использования библиотеки с бессмысленными именами классов, такими как «BeautifulStoneSoup». (Имена классов и функций не должны быть «креативными», они должны быть осмысленными.)