2017년 2월 4일 토요일

웹개발 한글파라미터 해결

보통 익스플로러에서 글자가 깨진다는 이슈로 접하게 된다.

별거 아니고 'GET방식 한글 파라미터'가 익스에선 깨지기 때문에 파라미터를 꼭 인코딩해서 보내야 한다.

javascript에서 예시.
...
window.location.href = "somepage.php" 
    + "?param1=" + encodeURIComponent(param1)
    + "&param2="+ encodeURIComponent(param2)
...
    
cs
encodeURIComponent 함수를 쓴 이유는 파라미터에 '&' 문자열이 포함될 경우 알아서 잘 처리해준다.


php 예시.
$pageUrl = "./somepage.php";
$pageUrl .= ("?param1=".urlencode($param1));
$pageUrl .= ("?param2=".urlencode($param2));
cs
가급적 꼭 파라미터별로 urlencode함수를 호출하는 것을 권한다.
상대주소인 경우 특히.

파라미터를 받아올때는 별다른 작업이 디코딩을 할 필요는 없다.
$param1 = $_REQUEST["param1"];
$param2 = $_REQUEST["param2"];
cs

꼭 작업중일때 이를 염두하여 다 개발해놓고 소스를 전부 뒤져가면서 urlencode함수와 encodeURIComponent함수를 여기저기 호출하러 다니지 말자.

나중에 한번에 작업하다보면 내가 PHP를 하고 있는지 javascript를 하고 있는지 햇갈리다가 꼭 에러를 내고 야근을 한다.



댓글 없음:

댓글 쓰기

리스트