从字符串中删除U \ 0000fffc unicode标量

时间:2017-01-10 08:19:37

标签: ios swift string unicode nsattributedstring

我收到一个NSAttributedString,其中包含NSTextAttachment。我想删除该附件,看起来它在字符串中表示为"\u{ef}"。打印此类字符串的unicode标量,似乎"\u{ef}"的unicode标量为U\0000fffc

我试着这样做:

noAttachmentsText = text.replacingOccurrences(of: "\u{ef}", with: "")

没有成功,所以我尝试比较unicode标量:

var scalars = Array(text.unicodeScalars)
for scalar in scalars {
   // compare `scalar` to `U\0000fffc`
}

但是我无法在比较中取得成功。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

但是这段代码适用于我How do I remove "\U0000fffc" from a string in Swift?

    let original = "First part \u{ef} Last part"
    let originalRange = Range<String.Index>(start: original.startIndex, end: original.endIndex)
    let target = original.stringByReplacingOccurrencesOfString("\u{ef}", withString: "", options: NSStringCompareOptions.LiteralSearch, range: originalRange)

    print(target)

输出:

“第一部分 - 最后部分”

第一部分最后一部分

答案 1 :(得分:0)

U可以使用 swift 3 的类似代码,只需使用 replacementOccurrences 选项替换unicode:

func stringTocleanup(str: String) -> String {
        var result = str
        result = result.replacingOccurrences(of: "\"", with: "\"")
            .replacingOccurrences(of: "\u{10}", with: "")
        return result
}