Explorar o código

fix: unicode decode error

icecraft hai 11 meses
pai
achega
113448903a
Modificáronse 1 ficheiros con 13 adicións e 1 borrados
  1. 13 1
      magic_pdf/data/data_reader_writer/base.py

+ 13 - 1
magic_pdf/data/data_reader_writer/base.py

@@ -48,4 +48,16 @@ class DataWriter(ABC):
             path (str): the target file where to write
             data (str): the data want to write
         """
-        self.write(path, data.encode())
+
+        def safe_encode(data: str, method: str):
+            try:
+                bit_data = data.encode(encoding=method, errors='replace')
+                return bit_data, True
+            except:  # noqa
+                return None, False
+
+        for method in ['utf-8', 'ascii']:
+            bit_data, flag = safe_encode(data, method)
+            if flag:
+                self.write(path, bit_data)
+                break