2013-03-17 2 views
5

gson 라이브러리를 사용하여 데이터를 json 형식 문자열로 serialize합니다. 서버에서 json 메시지를 받으면 유니 코드 문자에 물음표가 표시됩니다.유니 코드 문자열의 gson 직렬화가 작동하지 않습니다.

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

그러나 서버로 수신 :

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

코드 : 예를 들어, 나는 내 안드로이드 클라이언트에서 다음 보내 내가 디버깅 발견

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

서버 측의 문제처럼 보이는을, 당신은 PHP 나 ASP를 사용하고 있습니까? – JafarKhQ

+0

@ JafarKhQ 답장을 보내 주셔서 감사합니다. 문제는 HTTP 게시를 사용하는 방식 인 것 같습니다. 유니 코드를 지원하려면 명시 적으로 setEntity를 사용해야했습니다. – ssk

답변

관련 문제