पायथन 2 में, string-escape
और unicode-escape
है। utf-8 बाइट स्ट्रिंग के लिए, स्ट्रिंग-भागने \ बचने और गैर-ascii बाइट्स रखने के लिए, की तरह कर सकते हैं:पायथन 3 यूनिकोड-एस्केप गैर-एसीआई बाइट्स के साथ काम नहीं करता है?
"你好\\n".decode('string-escape')
'\xe4\xbd\xa0\xe5\xa5\xbd\n'
हालांकि, python3 में, string-escape
निकाल दिया जाता है।
"This\\n".encode('utf_8').decode('unicode_escape')
'This\n'
यह ascii बाइट्स के साथ काम करता है: हम बाइट्स में स्ट्रिंग सांकेतिक शब्दों में बदलना और unicode-escape
साथ यह डिकोड करने के लिए किया है। लेकिन गैर- ASCII बाइट्स भी छोड़ दिया जाएगा:
"你好\\n".encode('utf_8')
b'\xe4\xbd\xa0\xe5\xa5\xbd\\n'
"你好\\n".encode('utf_8').decode('unicode_escape').encode('utf_8')
b'\xc3\xa4\xc2\xbd\xc2\xa0\xc3\xa5\xc2\xa5\xc2\xbd\n'
सभी गैर-ascii बाइट्स बच गए हैं, जो त्रुटि एन्कोडिंग की ओर जाता है।
तो क्या इसके लिए कोई समाधान है? क्या यह सभी non-ascii बाइट्स को रखने और सभी भागने के निशान को डीकोड करने के लिए python3 में संभव है?