2017-12-29 20 views
0

emojisを含むサーバーにメッセージを送信する必要があります。私はCoreDataからデータを読み込み、それを辞書に格納し、それをjson形式に変換します。JSONイメジをシリアル化

私の最初の辞書はコンテンツ

["0": ["chat_token": "8g9nu0Z.a3", "message": "", "user_id": "1242", "created": "2017-12-29 17:13:16"]] 

を以下ました

私は、これは、JSON文字列

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

問題が絵文字で、次の私を返し、次のコード

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に変換正しくフォーマットされていません。 JSONではð¤ðに変換されます

私はそれを必要とする理由は、メッセージを格納するためにサーバーに送信することです。絵文字をjson文字列形式に変換するにはどうすればいいですか?

+0

私はすぐに質問を投稿した後に実現 –

答えて

2

問題は、emojisが存在しない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についてのヒントをありがとう。 –