http://kr2.php.net/mb_detect_encoding 이 페이지의 댓글 중
hmdker at gmail dot com <- 이 사람의 댓글에 있던 함수.
단점이랄 것도 없지만
검사할 문자열이 ASCII 내에 속하는 문자만으로 이루어진 문자열일 경우 UTF-8 이라고 리턴함.
코드를 보면 알겠지만 UTF-8 인코딩의 바이트마다의 특성을 가지고 검사하는 것이므로.
function is_utf8($str) { $c=0; $b=0; $bits=0; $len=strlen($str); for($i=0; $i<$len; $i++){ $c=ord($str[$i]); if($c > 128){ if(($c >= 254)) return false; elseif($c >= 252) $bits=6; elseif($c >= 248) $bits=5; elseif($c >= 240) $bits=4; elseif($c >= 224) $bits=3; elseif($c >= 192) $bits=2; else return false; if(($i+$bits) > $len) return false; while($bits > 1){ $i++; $b=ord($str[$i]); if($b < 128 || $b > 191) return false; $bits--; } } } return true; }
참고 1. UTF-8 문자 바이트를 확인할 수 있는 곳 (http://www.utf8-chartable.de/unicode-utf8-table.pl)
=> 원래라면 http://www.unicode.org/charts 이곳에서 확인하는게 FM이긴 하지만 pdf 파일로 되어있어 불편함
'PHP' 카테고리의 다른 글
[PHP] ImageMagick (0) | 2009.05.29 |
---|---|
PHP에서 tif 파일을 jpg 로 변환하기 (0) | 2009.05.28 |
PHP Application을 가장 빠르게 (0) | 2009.05.15 |
URLEncode Code Chart (0) | 2009.05.15 |
lock 걸고 파일 쓰기 (2) | 2009.05.10 |