diff --git a/tests/test_binary_vdf.py b/tests/test_binary_vdf.py index f64d10e..6ef93ea 100644 --- a/tests/test_binary_vdf.py +++ b/tests/test_binary_vdf.py @@ -123,3 +123,8 @@ def test_vbkv_loads_invalid_checksum(self): with self.assertRaises(ValueError): vdf.vbkv_loads(b'VBKV\x01\x02\x03\x04\x00a\x00\x0b\x0b') + def test_loads_utf8_invalmid(self): + self.assertEqual({'aaa': b'bb\xef\xbf\xbdbb'.decode('utf-8')}, vdf.binary_loads(b'\x01aaa\x00bb\xffbb\x00\x08')) + + def test_loads_utf16(self): + self.assertEqual({'aaa': b'b\x00b\x00\xff\xffb\x00b\x00'.decode('utf-16le')}, vdf.binary_loads(b'\x05aaa\x00b\x00b\x00\xff\xffb\x00b\x00\x00\x00\x08')) diff --git a/vdf/__init__.py b/vdf/__init__.py index 6c793c6..74fdd83 100644 --- a/vdf/__init__.py +++ b/vdf/__init__.py @@ -295,19 +295,25 @@ def binary_loads(s, mapper=dict, merge_duplicate_keys=True, alt_format=False): float32 = struct.Struct('