python - 删除字符串中的文字无效 Unicode 字符
问题描述
我有一个字符串,由 UTF-8 解码,但包含无效的 unicode 字符。
string = '칼 마르크스 「자본론\udb82\udc55Ⅰ, 김수행 역 비봉출판사 108쪽―이하에서는 「자본론\udb82\udc55의 권수와 쪽수만 표기함―역자'
有没有办法使用正则表达式删除任何文字 unicode 字符?
我需要删除那些文字 unicode 字符。不要将它们解码成另一种形式。
如果我包含完整的文字 unicode 字符,我只能删除它们,但我无法删除任何文字 unicode 字符。
re.sub('\udb82', '', string )
'칼 마르크스 「자본론\udc55Ⅰ, 김수행 역 비봉출판사 108쪽―이하에서는 「자본론\udc55의 권숌와랐출판사
我知道可以使用encode
and替换文字 unicode 字符decode
,但我正在寻找可以直接删除任何文字 unicode 字符的替代方法。
string.encode('utf-8', 'replace').decode('utf-8')
'칼 마르크스 「자본론??Ⅰ, 김수행 역 비봉출판사 108쪽―이하에서는 「자본론??의 권수와쪽수만항
解决方案
您实际上可能不会摆弄正则表达式,而是选择:
string = '칼 마르크스 「자본론\udb82\udc55Ⅰ, 김수행 역 비봉출판사 108쪽―이하에서는 「자본론\udb82\udc55의 권수와 쪽수만 표기함―역자'
print(string.encode('utf-8', 'ignore').decode('utf-8'))
哪个产量
칼 마르크스 「자본론Ⅰ, 김수행 역 비봉출판사 108쪽―이하에서는 「자본론의 권수와 쪽수만 표기함―역자
# ^^^ - it's gone!