从 python 中的字符串中删除非 utf-8 字符
Remove non utf-8 characters from string in python
我正在尝试读取推文并将这些推文写入文件。但是,当我尝试将其中一些推文写入文件时出现 UnicodeEncodeErrors。有没有办法删除这些非 utf-8 字符,以便我可以写出推文的其余部分?
例如,一条有问题的推文可能看起来像这样:
相机?
这是我使用的代码:
with open("Tweets.txt",'w') as f:
for user_tws in twitter.get_user_timeline(screen_name='camera',
count = 200):
try:
f.write(user_tws["text"] + '\n')
except UnicodeEncodeError:
print("skipped: " + user_tws["text"])
mod_tw = user_tws["text"]
mod_tw=mod_tw.encode('utf-8','replace').decode('utf-8')
print(mod_tw)
f.write(mod_tw)
错误是这样的:
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f3a5' in position 56: character maps to
你写的不是UTF8编码的文件,在open函数中添加encoding参数
with open("Tweets.txt",'w', encoding='utf8') as f:
...
玩得开心
我正在尝试读取推文并将这些推文写入文件。但是,当我尝试将其中一些推文写入文件时出现 UnicodeEncodeErrors。有没有办法删除这些非 utf-8 字符,以便我可以写出推文的其余部分?
例如,一条有问题的推文可能看起来像这样:
相机?
这是我使用的代码:
with open("Tweets.txt",'w') as f:
for user_tws in twitter.get_user_timeline(screen_name='camera',
count = 200):
try:
f.write(user_tws["text"] + '\n')
except UnicodeEncodeError:
print("skipped: " + user_tws["text"])
mod_tw = user_tws["text"]
mod_tw=mod_tw.encode('utf-8','replace').decode('utf-8')
print(mod_tw)
f.write(mod_tw)
错误是这样的:
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f3a5' in position 56: character maps to
你写的不是UTF8编码的文件,在open函数中添加encoding参数
with open("Tweets.txt",'w', encoding='utf8') as f:
...
玩得开心