проблемы с обратными косыми чертами, состоящими из escape-символов апострофов в быстрой строке, скопированной из буфера обмена - PullRequest
0 голосов
/ 19 октября 2019

У меня проблемы с использованием AWS AppSync SDK для создания мутаций из быстрой строки. Проблема возникает только тогда, когда я вставляю текст, включая апострофы, в textView и отправляю в SDK.

Если я набираю текст с апострофами в textView, а затем назначаю этот messageTextView.text моей мутации, он работает нормально.

однако, если я вставлю какой-нибудь текст, включая апостроф, а затем назначу этот messageTextView.text моей мутации, он выдаст ошибку:

[Unable to parse the JSON document: 'Unrecognized character escape ''' (code 39)
 at [Source: (String)"

Есть ли способ удалить эти escape-символы обратной косой черты изБыстрая строка, полученная из textView до создания мутации?

Я пытался определить строку как String (messageTextView.text), но это не помогло.

Точно такая же строка напечатанас апострофом в textView и копируемом в textView из буфера обмена. Я хотел бы знать, как сделать их одинаковыми. то есть сделать вставленный текст похожим на напечатанный. Я предполагаю, что разница заключается в кодировке, но я не знаю достаточно о строковых кодировках Swift, чтобы решить проблему.

1 Ответ

0 голосов
/ 20 октября 2019

Если кто-нибудь сталкивался с этой проблемой, было значение unicodeScalars вставленного текста: «\» для апостроф. Для напечатанного текста значение равно «\ u {2019}»

. Чтобы решить эту проблему, я сделал следующее в textViewDidChange:

textView.text = textView.text.replacingOccurrences(of: "\'", with: "\u{2019}")
...