Since 1982

캐릭터셋이 다른 서버로 전송할때 본문

php,javascript,html

캐릭터셋이 다른 서버로 전송할때

안퉤 2013. 9. 11. 17:49
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

다른 서버와 연동할때나, 부득이하게 캐릭터셋이 다른 곳으로 폼변수 전송하는 경우가 발생한다.


단순히 php 함수인 iconv로 전송을 하면 되겠지 생각했지만,


실제상황에서는 그렇지가 않다.


문자열이 전부 엉망이 되서 넘어간다.


euc-kr 셋을 사용하는곳에서 utf-8셋을 사용하는곳으로 변수 전달 하는 과정이었다.



form을 세팅할때 일반적으로 아래와 같이 할것이다.

<form name="form" method="post">


이래서는 문자열이 다 깨진다. 


form을 아래처럼 변경하고 전송하면 문제 없다.

<form name="form" method="post" accept-charset='utf-8' >



그러나 여기서 또 IE만 문제 발생

IE에서는 위처럼 해도 문자가 다깨진다.


form submit 전에 스크립트를 추가해서 해결 가능하다.

if (/MSIE/.test(navigator.userAgent)) {

document.charset = 'utf-8';

document.form.submit();

document.charset = 'euc-kr';

} else {

document.form.submit();

}


과정은 간단하다 

submit전에 캐릭터셋을 변경하고, submit을 하고, 다시 원래의 캐릭터셋으로 돌려주는 거다





'php,javascript,html' 카테고리의 다른 글

atom 에디터  (0) 2017.09.04
전체 소스 내용 검색  (1) 2016.02.10
javascript, ajax, html  (0) 2012.09.21
onmouseout onmouseleave  (0) 2012.09.17
스크롤에 따라 움직이는 버튼 스크립트  (0) 2012.06.30