PHP

[PHP] javascript escape 문자열 php unescape / escape() unescape() / 한글깨짐

chsr 2021. 3. 23. 11:22
728x90
반응형

■ PHP javascript escape 문자열 php unescape / escape() unescape() / 한글깨짐


 사용법

1. javascript > HTML input type="text" 입력값을 javascript 에서 escape(이스케이프) 처리 escape() 

 : 한글이 아닌 퍼센트(%), 숫자 및 영문자로 이루어진 문자열로 변환

 

<input type="text" id="tmpTxt" value="키보드" />

<script type="text/javascript">
  var relKwd = $("#tmpTxt").val();
  var kwd = escape(relKwd);		// %uD0A4%uBCF4%uB4DC
  var url = "submit_page.php?searchKwd=" + kwd;
  location.href = url ;
</script>

 

2. php > unescape(언이스케이프) unescape() 

 : escape() 처리된 문자열을 다시 처리되기 전 문자열로 반환 *따로 함수가 존재하지 않아 함수 구현 후 사용해야 함

function Unescape($str){
	return urldecode(preg_replace_callback('/%u([[:alnum:]]{4})/', 'UnescapeFunc', $str));
}

function UnescapeFunc($str){
	return iconv('UTF-16LE', 'UTF-8', chr(hexdec(substr($str[1], 2, 2))).chr(hexdec(substr($str[1],0,2))));
}

$searchKwd = isset($_REQUEST['searchKwd']) ? $_REQUEST['searchKwd'] : "";

$realKwd = Unescape($searchKwd);
echo $realKwd;		// 키보드
728x90
반응형