티스토리 뷰
자바스크립트에서 한글 인코딩을 할때 보통 escape/encodeURI 함수를 이용합니다.
escape 를 이용하면 앞에 %u 가 붙고 encodeURI 로 하면 그냥 % 만 붙어요.
그런데 여기서 중요한? 것 하나가 있어요.
utf-8 인 한글과 euc-kr 인 한글을 인코딩했을 때의 차이입니다.
utf-8 인 한글을 encodeURI 로 인코딩을 하면 한글 한 글자당 3개의 유니코드로 변환이 돼요. (박 -> %EB%B0%95)
그런데 euc-kr 에서 encodeURI 로 변환을 하면 2개의 유니코드로 변환이 됩니다. (박 -> %B9%DA)
자바스크립트 form 에서 한글 데이터를 넘길 때 뭔가 잘 안된다면, utf-8 인지 euc-kr 인지 확인할 것.
페이지 자체는 utf-8 인데 데이터를 넘길 때는 euc-kr 로 넘겨야 할 때가 있어요.
그럴 땐 form 태그에 accept-charset="euc-kr" 속성을 추가합니다.
<form method="get" accept-charset="euc-kr">
이렇게!! 그런데 단점은 IE 에서 동작을 안해요 ㅇ_ㅇ
IE 에서는 onsubmit="document.charset='euc-kr';" 속성을 추가합니다!!
'개발 TIP' 카테고리의 다른 글
오라클 ora-01756 해결 (0) | 2018.06.01 |
---|---|
자바스크립트 form 안에 text 엔터 (0) | 2018.06.01 |
자바스크립트 팝업 부모창, 메인창 제어하기 (0) | 2018.05.21 |
PHP 한글이 한자로 나올 때 (0) | 2018.05.21 |
SVN 소스관리(커밋, 업데이트 파일 받아오기) (0) | 2018.04.09 |
댓글