ali*_*ego 0 character-encoding ios swift
我在使用 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)"
Run Code Online (Sandbox Code Playgroud)
在创建突变之前,是否有办法从从 textView 获取的 Swift 字符串中删除这些反斜杠转义字符?
我尝试将字符串定义为 String(messageTextView.text) 但这没有帮助。
在 textView 中用撇号输入的完全相同的字符串和从剪贴板复制到 textView 的字符串是不同的。我想知道如何使它们相同。即使粘贴的内容与键入的内容一样。我认为差异在于编码,但我对 Swift 字符串编码了解不够,无法解决该问题。
如果有人遇到这个问题,问题是粘贴文本的 unicodeScalars 值是:“\'”(撇号)。对于键入的文本,值为“\u{2019}”
因此,为了解决这个问题,我在 textViewDidChange 中执行了以下操作:
textView.text = textView.text.replacingOccurrences(of: "\'", with: "\u{2019}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |