Python使用content.encode("utf-8").decode("unicode-escape")導致中文亂碼的解決方法


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM