none
HttpClient로 Euckr 전송 방법.... RRS feed

  • 질문

  • public async Task<String> getData()
            {
                if (HttpClientWork == false)
                {
                    HttpContent content;
                    content = new FormUrlEncodedContent(new[]
                    {
                        new KeyValuePair<string, string>("Data",  StringToEncoding("한글테스트"))
                    });

                    MediaTypeHeaderValue mediatype = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
                    mediatype.CharSet = "euc-kr";
                    mediatype.MediaType = "application/x-www-form-urlencoded";

                    content.Headers.ContentType = mediatype;

                    try
                    {

                        HttpResponseMessage response = await httpClient.PostAsync("http://~~~~~~~~", content);

       html = StringToEncoding(responseMessage); //수신받은 데이터 인코딩
                        System.Diagnostics.Debug.WriteLine(html);


        생략...
                    }
                    catch (Exception e)
                    {
        생략
    }
                }
                else
                {
                    생략...

            }



            public static String StringToEncoding(String str)
            {
                Encoding encode = System.Text.Encoding.GetEncoding("euc-kr");
                byte[] byteencode = encode.GetBytes(str);

                return encode.GetString(byteencode, 0, byteencode.Length);
            }

            public static String StringToEncoding(byte[] byteencode)
            {
                Encoding encode = System.Text.Encoding.GetEncoding("euc-kr");

                return encode.GetString(byteencode, 0, byteencode.Length);
            }







    new KeyValuePair<string, string>("Data",  StringToEncoding("한글테스트")) -> euckr로 변환 뒤에 데이터를 전송하도록 했는데요....

    서버에서 데이터를 받으면 



    ��������



    위와 같이 한글이 깨져나옵니다.



    HttpClient로 euckr전송을 할려면 어떻게 해야 될까요?? 

                                                                    
    • 편집됨 Juhyun Lim 2012년 12월 26일 수요일 오전 4:44 내용수정
    2012년 12월 26일 수요일 오전 4:41

답변

  • 혹시 euc-kr 대신 utf-16이나 utf-8로 전송해보세요.

    만약, 이렇게 바꿨을 때 깨지지 않으면 서버쪽에서 인코딩 설정을 변경하셔야 합니다.

    서버가 Web.Config이면 다음과 같은 구문을 추가해보세요.

    <globalization requestEncoding="ks_c_5601-1987" responseEncoding="ks_c_5601-1987" />

    • 답변으로 표시됨 Jina Lee 2013년 1월 3일 목요일 오전 1:15
    2013년 1월 2일 수요일 오전 9:58