2016. 5. 30. 11:42 IT/jquery_javascript
PHP EUC-KR ajax 한글 깨짐 처리.
1. Front Page
$.ajax({
url:"/test.php",
data:{
mode : "ins",
name : encodeURIComponent(userName)
},
type:"POST",
....
});
encodeURIComponent는 알겠지만 URL 형식으로 데이터를 넣을 수 있도록 문자열을 인코드한다. 결과적으로 name에는 %ED%97%90%EB%AD%90%EC%95%BC 뭐 이런식으로 데이터가 저장된다. 경우에 따라선 자동으로 변환해주나 브라우저 호환성을 위해 강제로 변환하게 하자.
2. Server Page
<?php
$name = $_GET['name'];
// 1. 설명이 필요한가? 전달되는 방법(method)이 다르면 당연히 거기에 맞게 변경해준다.
$name = urldecode($name);
// 2. %ED%97... 식으로 변환된 문자열을 본래 형태의 문자열로 변환한다. 이 반대 역할의 함수는 당연히 urlencode.
$name = iconv("utf-8","euc-kr",$name);
// 3. 변환 이후에는 utf-8로 데이터가 남아서 이걸로 지지고 볶을 순 없다. euc-kr로 변환 후 볶아준다.
$name = mb_convert_encoding($name,"euc-kr","utf-8");
// 4. 일부 서버에서는 iconv 함수를 지원하지 않는 경우도 간혹 있다. 그럴 경우 mb_string 계열 함수를 통해 변환을 해준다.
// 5. 필요하면 추가적인 보안조치(SQL Injection, XSS 필터등)를 해준다.
// 6. echo
echo iconv("euc-kr", "utf-8", "테스트 발송 되었습니다. ");
// 7. PROFIT!
?>
'IT > jquery_javascript' 카테고리의 다른 글
자바스크립트 함수 파라미터 디폴트 처리. (0) | 2018.01.31 |
---|---|
모바일 체크. 모바일 기종 체크. 브라우저 체크. (0) | 2017.07.12 |
iframe submit (0) | 2016.05.19 |
javascript 페이지 이동. (0) | 2016.03.03 |
저장 버튼 더블 클릭, 중복 클릭 방지 (1) | 2015.10.28 |