이슈

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=" + System.Web.HttpUtility.UrlEncode(value) + "&data.time=" + System.DateTime.Now.ToString() + "&registration_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() + "&registration_id=" + registrationID + "";

 

 


Posted by great-artist
,