在 Python 中完全从字符串中删除非 UTF-8 字符

问题描述

我知道已经有很多答案可以解决这个问题,但没有一个我有用。不知道为什么。

问题概述:

  1. 我从 BigQuery 获取数据并将其流式传输到模板中以创建 1.1GB XML 数据源
  2. 数据在某些字段中包含非 UTF-8 字符。它们可以正常传输,但意味着无法解析 XML。
  3. 我尝试对提要使用 XML 编写器,这意味着这些行会被跳过。问题是 XML dom 很大并且占用太多 RAM。

我尝试过的一些方法

my_string.encode('ascii','ignore').decode('utf-8','ignore')

这留下了像 \x0bA\x00 这样的字符代码

import string
''.join(x for x in mystring if x in string.printable)

同上。

import re
re.sub(r'[^\x00-\x7F]+',' ',my_string)

删除每个字符。

我不在乎在 1.2Gb 的数据馈送中丢失 5-6 个字符。那么我该如何删除它们?

这是一个示例字符串: “白色涂层漆面 RAL 9010。所有装置均采用加固门制造。” - 笔记!这些似乎是 UTF-8 无法表示的字符。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)