2013-03-17 16 views
5

Sto usando la libreria gson per serializzare i miei dati in una stringa di formato json. Quando ricevo il messaggio JSON sul server ottengo un punto interrogativo per caratteri unicode. Per esempio, io mando il seguente dal mio client Android:serializzazione gson della stringa unicode non funzionante

{"message_content":"This is a test message: مرحبا أصدقاء"} 

Ma il server riceve come:

{"message_content":"This is a test message: ???? ??????"} 

Codice:

import java.io.UnsupportedEncodingException; 

import android.telephony.PhoneNumberUtils; 

import com.google.gson.Gson; 

import com.google.gson.GsonBuilder; 
import com.google.gson.annotations.SerializedName; 

public class TestMessage { 

    @SerializedName("message_content") 
    private String mMessageContent; 

    public TestMessage(String messageContent) { 

     try { 
      byte[] utf8 = messageContent.getBytes("UTF-8"); 
      mMessageContent = new String(utf8, "UTF-8"); 
     } catch (UnsupportedEncodingException e) { 
      mMessageContent = messageContent; 
     } 
    } 

    public String toJSON() { 
     Gson gson = new GsonBuilder().create(); 
     return gson.toJson(this); 
    } 
} 
+0

sembra il tuo problema sul lato server, stai usando php o asp? – JafarKhQ

+0

@JafarKhQ grazie per la tua risposta, il problema sembra essere nel modo in cui ho usato il post HTTP. Ho dovuto impostare esplicitamenteEntity per supportare unicode. – ssk

risposta

Problemi correlati