Delete every non utf-8 symbols from string

前端 未结 4 1190
故里飘歌
故里飘歌 2020-11-29 05:46

I have a big amount of files and parser. What I Have to do is strip all non utf-8 symbols and put data in mongodb. Currently I have code like this.

with op         


        
相关标签:
4条回答
  • 2020-11-29 06:08

    For python 3, as mentioned in a comment in this thread, you can do:

    line = bytes(line, 'utf-8').decode('utf-8', 'ignore')
    

    The 'ignore' parameter prevents an error from being raised if any characters are unable to be decoded.

    If your line is already a bytes object (e.g. b'my string') then you just need to decode it with decode('utf-8', 'ignore').

    0 讨论(0)
  • 2020-11-29 06:11

    Try below code line instead of last two lines. Hope it helps:

    line=line.decode('utf-8','ignore').encode("utf-8")
    
    0 讨论(0)
  • 2020-11-29 06:14
    with open(fname, "r") as fp:
    for line in fp:
        line = line.strip()
        line = line.decode('cp1252').encode('utf-8')
    
    0 讨论(0)
  • 2020-11-29 06:18

    Example to handle no utf-8 characters

    import string
    
    test=u"\n\n\n\n\n\n\n\n\n\n\n\n\n\nHi <<First Name>>\nthis is filler text \xa325 more filler.\nadditilnal filler.\n\nyet more\xa0still more\xa0filler.\n\n\xa0\n\n\n\n\nmore\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfiller.\x03\n\t\t\t\t\t\t    almost there \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nthe end\n\n\n\n\n\n\n\n\n\n\n\n\n"
    
    print ''.join(x for x in test if x in string.printable)
    
    0 讨论(0)
提交回复
热议问题