2013년 6월 17일 월요일

[C# & ASP.NET] GCM Server 한글 깨짐 해결방법

문제점 GCM으로 한글을 보낼 경우 핸드폰에서 깨져서 보이거나 한글은 아예 먹어버린다.
인코딩 문제일까? 아니면 받는 어플에 문제일까?
어플에서 디버그를 해보니 받을 때 부터 한글은 없었다. 그럼 보내는 녀석이 문제군...
UTF-8로 인코딩 되있는데 .... 무엇이 문제일까....

tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=false&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "®istration_id=" + registrationID + "";

이렇게 포스트 데이터를 인코딩해보고

Byte[] byteArray = Encoding.UTF8.GetBytes(postData);

이렇게도 바꿔 보고
Byte[] byteArray = Encoding.ASCII.GetBytes(postData);


해결
결국 찾은 방안은 포스트 데이터 전부를 인코딩 하지 않고 아래처럼 해당 값만 인코딩을 해주면 잘된다.

string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=false&data.message=" + System.Web.HttpUtility.UrlEncode(value) + "&data.time=" + System.DateTime.Now.ToString() + "®istration_id=" + registrationID + "";

댓글 없음:

댓글 쓰기

문의하기

이름

이메일 *

메시지 *