<?
# UTF 로 무조건 변환
function change_to_utf($utfStr) {
if (iconv("UTF-8","UTF-8",$utfStr) == $utfStr) {
return $utfStr;
}
else {
return iconv("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 = iconv("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 = iconv("utf-8","euc-kr",$work_string);
$result_data .= $temp_data;
}
return $result_data;
}
# ex.
# 수신된 메일로부터 폼값을 받을때 수신된 메일의 charset이 euc-kr이 아닌 UTF8로 오는 경우,
# 일단 무조건 UTF8로 변환한 후 EUC-KR로 재변환하여 처리해야만 한글이 깨지지 않고
# 정상적으로 표출됩니다.
# Usage.
# $fromName = change_to_utf($fromName);
# $fromName = iconv_to_euc_kr($fromName);
?>
/**
* UTF-8=>한글 코드페이지[949]로 변환 AJAX에서 유니코드 문자 오류
*/
function utf8_euckr(&$item, $key, $prefix = ''){
if(is_array($item)) array_walk($item, 'utf8_euckr');
else $item=iconv('UTF-8', 'CP949',$item);
}
/**
* 한글 코드페이지[949] => UTF-8로 변환 AJAX에서 유니코드 문자 오류
*/
function euckr_utf8(&$item, $key, $prefix = ''){
if(is_array($item)) array_walk($item, 'euckr_utf8');
else $item=iconv('CP949', 'UTF-8',$item);
}
/**
* 입력값
*/
@array_walk($_POST, 'utf8_euckr');
/**
* 결과값 변환
*/
@array_walk($Result, 'euckr_utf8');
'Web(웹) Study > Java Script' 카테고리의 다른 글
document와 form에 id,name가져오기 (0) | 2008.09.10 |
---|---|
로그인 할 때 쿠키로 아이디 저장하기 (0) | 2008.07.18 |
레이어 셀렉트메뉴 (0) | 2008.07.15 |
가로정렬 좌우 스크롤 배너 (0) | 2008.07.09 |
수정이 가능한 텍스트(인라인텍스트에디터) (0) | 2008.07.09 |