def parse_header_value(name, val): if not is_pure_ascii(val): if parametrized.is_parametrized(name, val): # PHOENIX HACK!!! # FIXME: making the function return a completely different type on # parameterized headers is wrong. val = val.decode('utf-8', errors='replace') val = val.split(";", 1) if len(val) == 2: val, params = val rparams = {} for p in params.split(";"): k,v = p.split("=", 1) rparams[k.strip()] = v.split('"')[1] return val, rparams return val[0], {} return to_unicode(val) else: if parametrized.is_parametrized(name, val): val, params = parametrized.decode(val) if name == 'Content-Type': main, sub = parametrized.fix_content_type(val) return ContentType(main, sub, params) else: return WithParams(val, params) else: return val
def convert_to_unicode(charset, value): #in case of unicode we have nothing to do if isinstance(value, unicode): return value charset = _translate_charset(charset) return to_unicode(value, charset=charset)
def parse_header_value(name, val): if not is_pure_ascii(val): if parametrized.is_parametrized(name, val): raise DecodingError("Unsupported value in content- header") return to_unicode(val) else: if parametrized.is_parametrized(name, val): val, params = parametrized.decode(val) if name == 'Content-Type': main, sub = parametrized.fix_content_type(val) return ContentType(main, sub, params) else: return WithParams(val, params) else: return val