서버구축,나스구축,서버관리,윈도우서버,리눅스서버,서버관리

Posted
Filed under 프로그래밍/PHP

문자를 넘겨 받았을 때 문자의 Charset이 무엇인지 궁금하다.

혹시 UTF-8이 아니면 인코딩을 해줘야 하는데 어떻게 해야 할까..

mb_convert_encoding과 mb_detect_encoding을 활용하자.

	//일단 먼저 charset을 확인하자
	//mb_detect_encoding으로 체크
	
	//charset의 경우의 수를 미리 입력
	$ary[] = "ASCII";
	$ary[] = "JIS";
	$ary[] = "EUC-JP";
	$ary[] = "SJIS-WIN";
	...
	
	//Charset 체크
	$CharCheck = mb_detect_encoding($str, $ary);
	
	//만약에 UTF-8이면 그냥 보내고 아니면 인코딩한다.
	if($CharCheck == "UTF-8){
		return $str;
	} else {
		return mb_convert_encoding($str, "UTF-8", $CharCheck);
	}
	
	//mb_convert_encoding 사용법
	//mb_convert_encoding("변경할 String변수", "변경 후 Charset", "변경 전 Charset");
	
	//혹시 제대로된 UTF-8와 깨진 UTF-8이 넘어오면 어떻게 할까??
	//Unicode정규식 표현을 활용하여 체크하고 제대로 되어 있으면 그대로 보내고
	//잘못 되어 있으면 utf8_decode를 활용하여 다시 셋팅해준다.
	//정규식 표현은 검색으로
2015/04/15 11:56 2015/04/15 11:56