Man*_*ann 2 string encoding swift ios9 swift2
我正在尝试转义字符串以换行,即 \n。例如,假设字符串是:-
First Line Of String
second Line of String
Third Line of String
Run Code Online (Sandbox Code Playgroud)
现在如果我使用字符串扩展并说
func escapeString() -> String{
newString = self.stringByRemovingPercentEncoding
return newString
}
Run Code Online (Sandbox Code Playgroud)
这个扩展没有给我 newString 作为
First Line Of String\nSecond Line Of String\nThird Line Of String
Run Code Online (Sandbox Code Playgroud)
我需要将上面的字符串作为 jsonString 传递给 server.ie 我必须对其进行字符串编码
雨燕5
您可以使用JSONEncoder转义 \n、\、\t、\r、'、" 等字符,而不是在字符串中手动替换它们,例如:
extension String {
var escaped: String {
if let data = try? JSONEncoder().encode(self) {
let escaped = String(data: data, encoding: .utf8)!
// Remove leading and trailing quotes
let set = CharacterSet(charactersIn: "\"")
return escaped.trimmingCharacters(in: set)
}
return self
}
}
let str = "new line - \n, quote - \", url - https://google.com"
print("Original: \(str)")
print("Escaped: \(str.escaped)")
Run Code Online (Sandbox Code Playgroud)
输出:
Original: new line -
, quote - ", url - https://google.com
Escaped: new line - \n, quote - \", url - https:\/\/google.com
Run Code Online (Sandbox Code Playgroud)