繁体   English   中英

从剪贴板复制的 swift 字符串中的反斜杠撇号转义字符存在问题

[英]issues with backslash apostrophe escape characters in swift string copied from clipboard

我在使用 AWS AppSync SDK 从 swift 字符串创建突变时遇到问题。 仅当我在 textView 中粘贴包含撇号的文本并发送到 SDK 时,才会出现此问题。

如果我在 textView 中键入带有撇号的文本,然后将该 messageTextView.text 分配给我的突变,它就可以正常工作。

但是,如果我粘贴一些包含撇号的文本,然后将该 messageTextView.text 分配给我的突变,它会返回一个错误:

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

无论如何,在创建突变之前从 textView 获得的 Swift 字符串中删除这些反斜杠转义字符?

我试图将字符串定义为 String(messageTextView.text) 但这没有帮助。

在 textView 中用撇号键入的完全相同的字符串与从剪贴板复制到 textView 的字符串不同。 我想知道如何使它们相同。 即使粘贴的内容与键入的内容相同。 我认为区别在于编码,但我对 Swift 字符串编码了解不够,无法解决问题。

如果有人遇到这个问题,那么粘贴文本的 unicodeScalars 值是:“\'”代表撇号。 对于键入的文本,值为“\u{2019}”

所以为了解决这个问题,我在 textViewDidChange 中做了以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM