프로젝트/주차관리시스템

PVS :: [NaverMap] Naver Map 쿼리 utf-8 문제.

appHunter 2009. 5. 6. 16:21
글을 다 날려서 다시 적는다. !!  (2009-05-06에 날림) 

2007/06/25 21:27   원본보기


오늘도 여전히 삽질 중 ..


Naver Map 을 검색시에

쿼리를 날렸을 때 UTF-8 만 지원된다.  ( Naver Open API 에서 )


계속 euc-kr (나의 홈페이지 환경) 에서 쿼리를 날리니

검색이 되지 않는다.


PHP 함수를 지원 받아서 보내니 된다

iconv("euc-kr", "UTF-8", $_GET["query"]);


이제는 받는 값이 .. 제대로 표현이 안된다.

참고 주소 : http://blog.naver.com/snazzy79/70013223075
참고 주소 : phpSchool


# 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;
}