当前位置 博文首页 > wang785994599的博客:Python使用content.encode(“utf-8“).dec

    wang785994599的博客:Python使用content.encode(“utf-8“).dec

    作者:[db:作者] 时间:2021-09-06 18:54

    当想要把一个字符串中的\u002F这样的字符串转成正常字符串时,如果字符串中存在中文字符,将导致中文被转成乱码。
    例如:

    content = "\\u002F哈哈"
    content = content.encode("utf-8").decode("utf-8") 
    ==> \u002F哈哈  无法进行转码
    

    如果使用.decode(“unicode-escape”)

    content = "\\u002F哈哈"
    content = content.encode("utf-8").decode("unicode-escape")
    ==> /?“??“?   中文被转码导致乱码
    

    解决方法是逐段解码,只对\uxxxx这样的字符串进行unicode-escape解码,代码如下

    import re
    content = "\\u002F哈哈"
    content = re.sub(r'(\\u[a-zA-Z0-9]{4})',lambda x:x.group(1).encode("utf-8").decode("unicode-escape"),content)
    ==> /哈哈 
    
    cs