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");
}