2017-12-29 5 views
0

이모티콘이 포함 된 서버로 메시지를 보내야합니다. CoreData에서 데이터를 읽고 사전에 저장 한 다음 json 형식으로 변환합니다.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) 
} 

다음 사용하여 JSON으로 변환

{"0":{"chat_token":"8g9nu0Z.a3","message":"ð¤ð","user_id":"34","created":"2017-12-29 17:13:16"}} 

문제는 그림 이모티콘 입니다 내용은 다음있다 형식이 올바르지 않습니다. JSON에서 변환되면 ð¤ð

내가 필요한 이유는 메시지를 저장하기 위해 서버로 보내는 것입니다. 어떻게 이모티콘을 json 문자열 형식으로 변환합니까?

+0

내가 인코딩이 부적절하다고 가정 ... –

답변

2

이모티콘이없는 ASCII 인코딩을 사용하여 String을 초기화하려고하면 문제가 발생합니다. UTF-8을 사용해야합니다.

어쨌든 String을 반환하고 NSString 특정 기능을 사용하지 않으므로 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"}}" 
+0

내가 빨리 질문을 게시 한 후에 깨달았다. String에 대한 팁을 주셔서 감사합니다. –