当想要把一个字符串中的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[sS]{4})',lambda x:x.group(1).encode("utf-8").decode("unicode-escape"),content) ==> /哈哈
补充:自己
content = "u002F哈哈" content.encode("utf-8").decode("unicode-escape") print(content)
==> /哈哈
原文:https://blog.csdn.net/wang785994599/article/details/97653329