Поле данных API поддерживает только кодировку ASCII - но мне нужно поддерживать Юникод (эмодзи, иностранные символы и т. Д.)
Я бы хотел закодировать ввод текста пользователем в виде экранированной строки Юникода:
let textContainingUnicode = """
Let's go ? in the ?.
And some new lines.
"""
let result = textContainingUnicode.unicodeScalars.map { $0.escaped(asASCII: true)}
.joined(separator: "")
.replacingOccurrences(
of: "\\\\u\\{(.+?(?=\\}))\\}", <- converting swift format \\u{****}
with: "\\\\U$1", <- into format python expects
options: .regularExpression)
result
здесь "Let\'s go \U0001F3CA in the \U0001F30A.\n And some new lines."
А на сервере декодирование с python:
codecs.decode("Let\\'s go \\U0001F3CA in the \\U0001F30A.\\n And some new lines.\n", 'unicode_escape')
Но это пахнет смешноя действительно должен сделать так много манипуляций строк в быстром, чтобы получить экранированный юникод?Эти форматы не стандартизированы по языкам.