[英]swift how to convert special unicode
let result = ["response": response,
"callbackId": callbackId]
do {
let data = try NSJSONSerialization.dataWithJSONObject(result, options: .PrettyPrinted)
var str = NSString(data: data, encoding: NSUTF8StringEncoding) as? String
str = str?.stringByReplacingOccurrencesOfString("\\", withString: "\\\\")
str = str?.stringByReplacingOccurrencesOfString("\"", withString: "\\\"")
str = str?.stringByReplacingOccurrencesOfString("\'", withString: "\\\'")
str = str?.stringByReplacingOccurrencesOfString("\n", withString: "\\n")
str = str?.stringByReplacingOccurrencesOfString("\r", withString: "\\r")
// str = str?.stringByReplacingOccurrencesOfString("\f", withString: "\\f")
// str = str?.stringByReplacingOccurrencesOfString("\u2028", withString: "\\u2028")
// str = str?.stringByReplacingOccurrencesOfString("\u2029", withString: "\\u2029")
return "bridge.invokeJs('{\"response\" : {\"username\" : \"zhongan\"},\"callbackId\" : \(callbackId)}')"
} catch {
return nil
}
我想JSON字符串转换成js脚本,然后调用evaluateJavaScript
,但不能转换的特殊字符,如\\f
\
,这会给出一个编译器错误,我不知道为什么。
根据此页面,未定义\\f
。
转义的特殊字符\\ 0(空字符),\\(反斜杠),\\ t(水平制表符),\\ n(换行符),\\ r(回车),\\“(双引号)和\\'(单引号)
任意Unicode标量,写为\\ u {n},其中n是1–8位数的十六进制数字,其值等于有效的Unicode代码点
所以
\\f
\\u{000C}
可能会以\\u{000C}
形式转义 \
必须将页面Feed转义为\\u{2029}
\
行分隔符必须转为\\u{2028}
另请参阅“ Unicode控制字符 ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.