+def clean_header(header):
+ """ Decode (possibly non-ascii) headers """
+
+ def decode(str, fragment):
+ (frag_str, frag_encoding) = fragment
+ if frag_encoding:
+ return str + frag_str.decode(frag_encoding)
+ return str + frag_str.decode()
+
+ return reduce(decode, decode_header(header), u'').strip()
+