diff --git a/src/hpack/hpack.py b/src/hpack/hpack.py index cc39bfd..612bfbd 100644 --- a/src/hpack/hpack.py +++ b/src/hpack/hpack.py @@ -143,14 +143,16 @@ def _dict_to_iterable(header_dict): yield key, header_dict[key] -def _to_bytes(string): +def _to_bytes(value): """ - Convert string to bytes. + Convert anything to bytes through a UTF-8 encoded string """ - if not isinstance(string, basestring): # pragma: no cover - string = str(string) - - return string if isinstance(string, bytes) else string.encode('utf-8') + t = type(value) + if t is bytes: + return value + if t is not str: + value = str(value) + return value.encode("utf-8") class Encoder: