mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 01:16:35 +03:00
Ignore invalid utf-8 strings (closes #49)
This commit is contained in:
parent
6069188b54
commit
3d66062eb4
|
@ -89,7 +89,19 @@ class BinaryReader:
|
|||
|
||||
def tgread_string(self):
|
||||
"""Reads a Telegram-encoded string"""
|
||||
return str(self.tgread_bytes(), encoding='utf-8')
|
||||
return self._decode_string(self.tgread_bytes())
|
||||
|
||||
@staticmethod
|
||||
def _decode_string(encoded):
|
||||
# Workaround for issues #49 and #67
|
||||
# Sometimes an invalid utf-8 string is received. We can just remove
|
||||
# the offending parts and replace them with a different solution.
|
||||
# There aren't many other options, besides crashing.
|
||||
try:
|
||||
return str(encoded, encoding='utf-8')
|
||||
except UnicodeDecodeError as e:
|
||||
fixed = encoded[:e.start] + encoded[e.end:]
|
||||
return BinaryReader._decode_string(fixed)
|
||||
|
||||
def tgread_bool(self):
|
||||
"""Reads a Telegram boolean value"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user