웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
토막소스
 


EUC-KR<=>UTF-8 상호변환 하기
  2008-09-07 01:55:14 댓글:(0)   조회:1998



<? 
//유니코드를 한글로 변환
# UTF 로 무조건 변환 
function change_to_utf($utfStr) { 
  if (libiconv("UTF-8","UTF-8",$utfStr) == $utfStr) { 
    return $utfStr; 
  } 
  else { 
    return libiconv("EUC-KR","UTF-8",$utfStr); 
  } 


# UTF => EUC-KR로 변환 
function iconv_to_euc_kr($get_data) { 
  $work_unit = 50; 

  $init_size = strlen($get_data); 

  $result_data = ""; 

  $count = 0; 

  for ( $i = 0 ; $i < $init_size ; $i++ ) { 
    $cur_char = substr($get_data,$i,1); 

    $t = ord($cur_char); 
    if ( $t == 9 || $t == 10 || (32 <= $t && $t <= 126) ) { 
      $tn = 1; 
    } 
    else if ( 194 <= $t && $t <= 223 ) { 
      $tn = 2; 
    } 
    else if ( 224 <= $t && $t < 239 ) { 
      $tn = 3; 
    } 
    else if ( 240 <= $t && $t <= 247 ) { 
      $tn = 4; 
    } 
    else if ( 248 <= $t && $t <= 251 ) { 
      $tn = 5; 
    } 
    else if ( $t == 252 || $t == 253 ) { 
      $tn = 6; 
    } 
    else { 
      $tn = 1; 
    } 

    if ( $work_unit < $tn ) { 
      break; 
    } 

    if ( $count + $tn > $work_unit ) { 
      $temp_data = libiconv("utf-8","euc-kr",$work_string); 
      $result_data .= $temp_data; 

      $work_string = ""; 
      $i--; 
      $count = 0; 
    } 
    else { 
      for ( $j = 0 ; $j < $tn ; $j++ ) { 
        $work_string .= $cur_char; 
        $i++; 
        $count++; 
        $cur_char = substr($get_data,$i,1); 
      } 
      $i--; 
    } 
  } 

  if ( $work_string ) { 
    $temp_data = libiconv("utf-8","euc-kr",$work_string); 
    $result_data .= $temp_data; 
  } 

  return $result_data; 

$rrr="&#47924;&#49436;&#50868; &#50808;&#44228;&#51064;&#51032; &#51648;&#44396; &#52840;&#44277;";
$rrr2=change_to_utf($rrr);
echo "$rrr2 : $rrr2<br>";
# ex. 
# 수신된 메일로부터 폼값을 받을때 수신된 메일의 charset이 euc-kr이 아닌 UTF8로 오는 경우, 
# 일단 무조건 UTF8로 변환한 후 EUC-KR로 재변환하여 처리해야만 한글이 깨지지 않고 
# 정상적으로 표출됩니다. 

# Usage. 
# $fromName = change_to_utf($fromName); 
# $fromName = iconv_to_euc_kr($fromName); 

?>



 댓글 (0)


토막소스
페이지: 1 / 4   


   이미지 사이즈 비율대로 축소1039
   PHP- 파일 다운로드시 속도 제한하기1797
     파일 다운로드 속도 제한1516
   ffmpeg 설치 후 php 업로드 간단 테스트2439
   새청없이 주소검색2090
EUC-KR<=>UTF-8 상호변환 하기1999
   키를 이용한 암호화/복호화 함수입니다.1628
   간단한 암호화/복호화 함수1710
   PHP로 작동하는 RSS 읽는 함수1533
   [PHP] 자동 썸네일 이미지 만들기2144
   내용 검색시 검색어 내용 포함되어있는 부분 출력하기1501
   사이트 방문경로와 검색한 단어 알기1478
   이미지 실제경로를 않보여주고 이미지 출력하기(2) 4998
    Ajax로 구연한 실시간 서버시간 출력2364
   ajax refresh(2초에 한번 자동 페이지로딩5224
   refresh.php1497
   연합뉴스 샘플1638
   구글뉴스1468
   웹페이지의 문자열 가져오기 소스1719
   XML<-->Array 클래스(4) 1777
   str_replace() 한글치환 보강1886
   php로 텍스트라인에서 영문 한글 특수문자 숫자 지2895
   추천 하려면..어떻게 해야하죠?(1) 1545
   들어온 경로 URL 기록 남기기1693
   중복 로그인 방지법4422
   세션 DB 처리 소스1614
   한페이지에서 체크된것은 Y, 아니면 N으로 업데이트(1) 1600
   [제로보드] 쪽지 도착하면 자동으로 뜨게 하기(홈마스타)1574
   PHP특강(28)-쪽지 확인창 띄워주기(홈마스타)1784
   [초보강좌] 세션을 DB로 관리하기 + 쪽지 확인하(홈마스타)794
[1]  [2]  [3]  [4]  

복수단어 검색은 공백(space)로 구분해 주세요. 1





최근 글
[손님]

인기 글
[손님]
[홈마스타] 중보입력 방지 루틴
[홈마스타] input 버턴의 모양
[기무진선] 모의고사질문이요