Здесь представлен минималистский пример, который позволяет вам использовать решение Ignacio со встроенным в Python механизмом кодирования / декодирования.Проверьте http://docs.python.org/library/codecs.html, если вам нужно что-то более согласованное (с правильной обработкой ошибок и т. Д.)
import codecs
def encode(text, error="strict"):
return ("".join("<U%04x>" % ord(char) for char in text), len(text))
def search(name):
if name == "unicode_ltgt":
info = codecs.CodecInfo(encode, None, None, None)
info.name = "unicode_ltgt"
info.encode = encode
return info
return None
codecs.register(search)
if __name__ == "__main__":
a = u"maçã"
print a.encode("unicode_ltgt")
(просто импортировав это как модуль, кодек "unicode_ltgt" будет установлени быть доступным для любого вызова ".encode", как в данном примере)