我正在加载一些数据,对其进行处理,然后将数据发送到一个应用程序(足够公平),它不允许无效noncharacter
的utf8以及无效和特殊字符U+FDD0
通过。U+FDEF
U+FFFE
U+FFFF
我的原始数据超出了我的控制范围,其中一些恰好包含我想要清除的无效字符。
但是,我的 python 代码仍在向应用程序发送无效的 utf8,因为它不会忽略非字符和其他无效字符。
例如
b'\xef\xbf\xbf'.decode('utf-8', 'ignore')
返回'\uffff'
而不是忽略无效字符,并且encode
具有相同的行为。
我首先使用 U+FFFE 进行了调试,它有一个与 BOM 相关的 wontfix 错误。https://bugs.python.org/issue765036
然后我发现这个庞大的电子邮件列表线程 ( https://bugs.python.org/issue12729 ) 声称可以发出非字符,因为应用程序可能希望保留它们以供内部使用。
但是,是否有任何不错的 python 方法可以在没有这些非字符和其他无效字符的情况下发出“transmitabble”utf8 U+FFFF
?