본문 바로가기
Programming/C++

[C++] iconv를 이용하여 문자 인코딩 방식 변경 By 용호

by ★용호★ 2011. 9. 16.

2011년 9월 16일

 서버에서 클라이언트로 문자열을 보내면 서버와 클라 간 문자 인코딩 방식이 달라서 문자가 깨지는 현상이 발생 했었다.  그래서 영어로만 사용하던 중 기획팀에서 한글로 띄워달라는 요청에 방법을 찾고 있었는데 서버에서 전체 공지를 할때 iconv를 사용한다는 것을 알게 되었다.

 - #include <iconv.h>

 먼저, iconv를 사용하기 위해서는 헤더파일을 참조 해야한다. 

- iconv_t cd

 iconv_t 타입의 변수가 필요하다. 

src_code : 기존의 문자 인코딩 방식
des_code : 변환될 문자 인코딩 방식
src : 변환 해야 할 문자
des : 변환 후 담기게 될 변수
src_len : 변환해야 할 문자의 크기
des_len : 변환 후 담기게 될 변수의 크기

 - cd = iconv_open( des_code, src_code );
 - iconv( cd, &src, &src_len, &des, &des_len );


- 예제 소스
 void ConvertChar( char* pMessage )
{
       if( !pMessage ) return;
       iconv_t cd = iconv_open( "UHC", "UTF-8" );
      
       char szWMessage[255] = {0,};
       char* pS = pMessage;
       char* pT = szWMessage;

       size_t nsLen = strlen( pS );
       size_t nWLen = sizeof( szWMessage );

       if( cd != (iconv_t)(-1) )
              iconv( cd, &pS, &nsLen, &pT, &nwLen );

       iconv_close( cd );
}

'Programming > C++' 카테고리의 다른 글

[C++] 빌드 시간 구하기  (0) 2012.09.26
[C++] 브레이크 포인트  (0) 2012.09.26
[C++] equal_rage by 용호  (0) 2012.06.25
[C++] vector 간의 연산 (set_difference와 copy) By 용호  (0) 2011.04.23
[C++] Vector Erase 문제 By 용호  (0) 2011.03.25

댓글