parent
f3c9387219
commit
e215484c75
@ -22,6 +22,10 @@ Feature release.
|
||||
- MPD: Added Unix domain sockets for binding MPD to.
|
||||
(Fixes: :issue:`1531`, PR: :issue:`1629`)
|
||||
|
||||
- Ensure that decoding of OS errors with unknown encoding never crashes, but
|
||||
instead replaces unknown bytes with a replacement marker. (Fixes:
|
||||
:issue:`1599`)
|
||||
|
||||
|
||||
v2.1.0 (2017-01-02)
|
||||
===================
|
||||
|
||||
@ -9,4 +9,4 @@ def locale_decode(bytestr):
|
||||
try:
|
||||
return compat.text_type(bytestr)
|
||||
except UnicodeError:
|
||||
return bytes(bytestr).decode(locale.getpreferredencoding())
|
||||
return bytes(bytestr).decode(locale.getpreferredencoding(), 'replace')
|
||||
|
||||
@ -43,3 +43,10 @@ class LocaleDecodeTest(unittest.TestCase):
|
||||
encoding.locale_decode(b'abc')
|
||||
|
||||
self.assertFalse(mock.called)
|
||||
|
||||
def test_replaces_unknown_bytes_instead_of_crashing(self, mock):
|
||||
mock.return_value = 'US-ASCII'
|
||||
|
||||
result = encoding.locale_decode(b'abc\xc3def')
|
||||
|
||||
assert result == 'abc\ufffddef'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user