Как преобразовать сырую строку в обычную
Есть сырая строка, которую нужно превратить в обычную. В ней есть кириллические символы. На зарубежных форумах увидел подобный способ:
s = r'тест\nfoo'
s.encode().decode('unicode-escape')
Но на выходе я получаю что-то типа этого:
ÑеÑÑ
foo
Каким образом можно провести корректное преобразование кириллицы?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Если я правильно понял - вы хотите операцию, обратную операции экранирования.
Т.е. получить из строки "тест\\nfoo" --> "тест\nfoo".
Можно попробовать воспользоваться ast.literal_eval():
In [64]: from ast import literal_eval
In [65]: s = r'тест\nfoo\ttext after <TAB>'
In [66]: print(s)
тест\nfoo\ttext after <TAB>
In [67]: res = literal_eval(f'"{s}"')
# NOTE: -------------------> ^ ^
In [68]: print(res)
тест
foo text after <TAB>