从NSMutableString中删除unicode符号

时间:2016-10-10 13:21:49

标签: swift string unicode

我有一个生成的String(带图像附件的UITextView的内容),需要将其保存到数据库

let textView = UITextView()
textView.text = "some text"
let attString = NSMutableAttributedString(string: " ")
attString.replaceCharactersInRange(NSMakeRange(0, 1), withAttributedString: NSAttributedString(attachment: NSTextAttachment()))
textView.textStorage.insertAttributedString(attString, atIndex: textView.text.length)
print("\(textView.text)")

输出:“一些文字”。但是如果通过调试器观看textView.text的内容,则文本包含“some text \ u {ef}”

如何从textView.text中删除\ u {ef}并在textView.text中获取“some text”?

textView.text = textView.text.stringByReplacingOccurrencesOfString("\u{ef}", withString: "") 

没有取得预期的效果

当前修复:

text = String(text.characters.filter() { $0 <= "~" })

1 个答案:

答案 0 :(得分:0)

需要更多的定义来真正了解您要实现的目标以及这些字符如何在您感兴趣的字符串中出现。

如果你真的想重新编码字符串,可能会丢失多字节字符等信息,那么你可以在latin1中对它进行编码(在没有详细说明数据库使用的编码的情况下是你所追求的编码):

str.data(using: .isoLatin1, allowLossyConversion: true)

(...或者如果你想完全成为穴居人,str.data(using: .ascii, allowLossyConversion: true) - 尽管如此,你的问题还不清楚。)