http://php.net/mb_detect_encoding 페이지의 누군가의 댓글에서 발견한 함수.
댓글 말마따나 가볍고 괜찮은 방법이다.



function detectEncoding($str, $encodingSet)
{
    foreach ($encodingSet as $v) {
        $tmp = iconv($v, $v, $str);
        if (md5($tmp) == md5($str)) return $v;
    }
    return false;
}





DokuWiki의 한글 인덱스 만드는 용도로 사용했다.
DokuWiki는 전부 UTF-8 로 조지는데 한글 파일이나 폴더가 저장될 때 EUC-KR로 저장되어서 제대로 사용할 수가 없다.
그래서 doku.php 의 최상단에 아래의 부분을 추가했다.
일단 잘 돌아간다...

// 인코딩을 알아내는 함수
// _________________________________________________________________

function detectEncoding($str, $encodingSet)
{
        foreach ($encodingSet as $v) {
                $tmp = iconv($v, $v, $str);
                if (md5($tmp) == md5($str)) return $v;
        }
        return false;
}

// 인코딩을 체크해서 EUC-KR일 경우 UTF-8로 변환
// _________________________________________________________________

function changeCharset(&$item, $key)
{
        if (is_string($item)==true) {
                $encoding = array('UTF-8');
                if (detectEncoding($item, $encoding)!='UTF-8') $item = iconv('EUC-KR', 'UTF-8', $item);
        }
}

// dokuwiki 에서 한글을 제대로 지원하기 위해서 (백충덕, 2009-06-18)
array_walk_recursive($_GET, "changeCharset");
array_walk_recursive($_POST, "changeCharset");







'PHP' 카테고리의 다른 글

[PHP] 시간을 초로 환산, 초를 시간으로 환산  (4) 2009.07.22
[PHP] Comet with PHP+iframe  (0) 2009.07.05
PHP로 HTTP 요청하기  (0) 2009.06.05
PHP 스크립트를 데몬으로 실행하기  (0) 2009.06.04
[PHP] ImageMagick  (0) 2009.05.29
Posted by bloodguy
,