2010년 4월 16일 금요일

PHP 언어디코딩

php에서 UTF-8을 EUC-KR로 혹은 base64를 euc-kr 이런걸로 바꿔야할 경우가 종종있습니다.

iconv로 바꾸면 된다고들 하시는데 iconv는 짧은 단어만 바꿀때는 강력한데 길어지면 힘들어하더군요..

iconv("UTF-8", "EUC-KR", "동수야놀자"); //euc-kr
mb_convert_encoding("동수야 놀자","EUC-KR", "UTF-8"); //euc-kr

위에 두 함수 둘다 같은 결과를 뱉어냅니다..

그래도 좀 더 길어진 문자열이라면 상황은 다르죠... iconv는 결과를 못내줍니다.

웹메일의 본문 사용시에 mb_conver_encoding() 함수를 써봤는데 유용하더라구요..

mb_convert_encoding()함수는 변수도 " " 을 붙여합니다.

그다음 소개 해드릴건 mb_detect_encoding() 함수인데 이 함수는 현재 받아온 인자값이

어떤타입의 인코딩으로 되어있는지 보여주는겁니다.

예제) 아래 소스는 utf-8일경우 euc-kr로 바꾸는 소스입니다.

  if('utf-8' == strtolower(mb_detect_encoding($fromdecode, 'euc-kr, utf-8')))
    {
     $From = mb_convert_encoding("$fromdecode","EUC-KR", "UTF-8");
    }

댓글 없음:

댓글 쓰기