當想要把一個字符串中的\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[\s\S]{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
