瀏覽代碼

Merge pull request #1231 from icecraft/fix/unicode_write

fix: unicode decode error
Xiaomeng Zhao 11 月之前
父節點
當前提交
faad16646b
共有 1 個文件被更改,包括 13 次插入1 次删除
  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