2013-03-17 15 views
5

Używam biblioteki gson do serializowania moich danych do łańcucha formatu json. Po otrzymaniu wiadomości json na serwerze otrzymuję znak zapytania dla znaków Unicode. Na przykład, mogę wysłać następujące z moim android klient:serializacja gson ciągów unicode nie działa

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

ale serwer odbiera je jako:

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

kod:

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

wygląda jak twój problem po stronie serwera, czy używasz php lub asp? – JafarKhQ

+0

@JafarKhQ dzięki za odpowiedź, problem wydaje się być w sposób użyłem post HTTP. Musiałem jawnie ustawićEntity, aby obsługiwać Unicode. – ssk

Odpowiedz

Powiązane problemy