python2'de string-escape
ve unicode-escape
vardır. utf-8 bayt dize, dize-kaçış \ kaçabilseydim ve benzeri olmayan ASCII bayt tutmak:python3 unicode-escape, ascii olmayan baytlarla çalışmaz mı?
"你好\\n".decode('string-escape')
'\xe4\xbd\xa0\xe5\xa5\xbd\n'
Ancak python3 içinde, string-escape
kaldırılır.
"This\\n".encode('utf_8').decode('unicode_escape')
'This\n'
Bu ASCII bayt ile çalışır: Biz bayt içine dize kodlamak ve unicode-escape
ile deşifre gerekiyor. Ama ASCII olmayan bayt da kaçtı edilecektir:
"你好\\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'
olmayan tüm ASCII bayt hatası kodlayan yol açar öncelenecektir.
Bunun için bir çözüm var mı? Python3'te tüm ascii olmayan baytları tutmak ve tüm kaçış karakterlerini çözmek mümkün mü?