JSON 序列化表情符号
JSON Serialize Emoji
我需要向服务器发送包含表情符号的消息。我从 CoreData 中读取数据,将其存储在字典中,然后将其转换为 json 格式。
我的初始词典有以下内容
["0": ["chat_token": "8g9nu0Z.a3", "message": "", "user_id": "1242", "created": "2017-12-29 17:13:16"]]
然后我使用以下代码将其转换为 JSON
do {
let jsonData = try JSONSerialization.data(withJSONObject: resultDict, options: [])
if let jsonText = NSString(data: jsonData, encoding: String.Encoding.ascii.rawValue) {
return jsonText as String
}
} catch let error {
print(error)
}
这个 returns 我关注 json 字符串
{"0":{"chat_token":"8g9nu0Z.a3","message":"ð¤ð","user_id":"34","created":"2017-12-29 17:13:16"}}
问题是表情符号的格式不正确。在 JSON 中,它被转换为 ð¤ð
我需要它的原因是将它发送到服务器以存储消息。如何将表情符号转换为 json 字符串格式。
问题是您正在尝试使用 ASCII 编码初始化 String
,其中不存在表情符号。您应该使用 UTF-8。
您也不应该使用 NSString
,因为您无论如何都会返回 String
,并且没有使用任何 NSString
特定功能。
do {
let jsonData = try JSONSerialization.data(withJSONObject: resultDict)
if let jsonText = String(data: jsonData, encoding: .utf8) {
return jsonText
}
} catch let error {
print(error)
}
输出:
"{"0":{"chat_token":"8g9nu0Z.a3","message":"","user_id":"1242","created":"2017-12-29 17:13:16"}}"
我需要向服务器发送包含表情符号的消息。我从 CoreData 中读取数据,将其存储在字典中,然后将其转换为 json 格式。
我的初始词典有以下内容
["0": ["chat_token": "8g9nu0Z.a3", "message": "", "user_id": "1242", "created": "2017-12-29 17:13:16"]]
然后我使用以下代码将其转换为 JSON
do {
let jsonData = try JSONSerialization.data(withJSONObject: resultDict, options: [])
if let jsonText = NSString(data: jsonData, encoding: String.Encoding.ascii.rawValue) {
return jsonText as String
}
} catch let error {
print(error)
}
这个 returns 我关注 json 字符串
{"0":{"chat_token":"8g9nu0Z.a3","message":"ð¤ð","user_id":"34","created":"2017-12-29 17:13:16"}}
问题是表情符号的格式不正确。在 JSON 中,它被转换为 ð¤ð
我需要它的原因是将它发送到服务器以存储消息。如何将表情符号转换为 json 字符串格式。
问题是您正在尝试使用 ASCII 编码初始化 String
,其中不存在表情符号。您应该使用 UTF-8。
您也不应该使用 NSString
,因为您无论如何都会返回 String
,并且没有使用任何 NSString
特定功能。
do {
let jsonData = try JSONSerialization.data(withJSONObject: resultDict)
if let jsonText = String(data: jsonData, encoding: .utf8) {
return jsonText
}
} catch let error {
print(error)
}
输出:
"{"0":{"chat_token":"8g9nu0Z.a3","message":"","user_id":"1242","created":"2017-12-29 17:13:16"}}"