4

최근 c2dm 푸시 aaplucation을 GCM으로 변경했습니다. 새로운 문제가 나타났습니다. 이제는 대신 '?'을받습니다.GCM 및 특수 문자

내 서버는 올바른 문자열을 기록하지만 응용 프로그램은 '?' 대신.

GCM과 관련이 있다고 생각하십니까?

public static void displayMessage(Context context, Intent intent) { 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     String message = (String) extras.get("message"); 
     Log.v("extras", extras.toString()); 
     Util.generateNotification(context, message, intent); 
    } 
} 

와 로그는 다음과 같습니다 :

내 코드는 다음입니다

10-02 22:18:23.671: V/intent(29809): Bundle[{message={"name":"j?rg"}, 
message_id=8bb60eee-3a93-4075-b606-40495511a4da, collapse_key=do_not_collapse, from=160085429222}] 

감사합니다!

+0

URLEncoder/Decoder를 사용할 수 있습니다. 다른 방법이 있습니까? – jobe

+0

로깅의 아티팩트가 아닌지 확인하십시오. –

+0

나는 확신한다. 특수/Latin1 문자는 단순히 '?'로 대체됩니다. 그것은 c2dm과 완벽하게 작동했습니다. – jobe

답변

1

저는 GCM에 문제가 있다고 생각하지 않습니다. 메시지에 UTFE 인코딩을 사용해보십시오.

String output = new String(name.getBytes("8859_1"), "utf-8"); 
+1

UTF-8로 변환 할 수 없습니다. 이것은 같은 문제 일 수 있습니다 : http://stackoverflow.com/questions/11501504/android-gcm-unicode-charcters-are-not-received – jobe

+0

저에게 효과있는 유일한 방법, 감사합니다! – Roman