반응형
UTF-8에서 EUC-KR 페이지 요청 시 한글 깨짐처리
function fn_down(property, savedFileName, realFileName){ if(document.getElementById("tempForm") != null && document.getElementById("tempForm").length > -1) document.getElementById("tempForm").remove(true); var tempHtml = document.createElement("form"); tempHtml.id = "tempForm"; tempHtml.method = "get"; tempHtml.action = "URL주소"; tempHtml.setAttribute("accept-charset", "euc-kr"); var input1 = document.createElement("input"); var input2 = document.createElement("input"); var input3 = document.createElement("input"); input1.setAttribute("type", "hidden"); input1.setAttribute("name", "property"); input1.setAttribute("value", property); input2.setAttribute("type", "hidden"); input2.setAttribute("name", "filename"); input2.setAttribute("value", savedFileName); input3.setAttribute("type", "hidden"); input3.setAttribute("name", "realname"); input3.setAttribute("value", realFileName); tempHtml.appendChild(input1); tempHtml.appendChild(input2); tempHtml.appendChild(input3); document.getElementById("cont_inside").appendChild(tempHtml); var agent = navigator.userAgent.toLowerCase(); if ( (navigator.appName == "Netscape" && navigator.userAgent.search("Trident") != -1) || (agent.indexOf("msie") != -1) ) { document.charset = "euc-kr"; } tempHtml.submit(); } |
글쓴이는 첨부파일을 해당 사이트를 통해 다운받아야하는데 UTF-8(운영사이트) 기준으로 한글이 인코딩이 되는 바람에
EUC-KR(다운받는 사이트)에서는 없는 파일로 나오는 문제가 있었다.
해당 문제를 JS로 form 태그를 생성하여 위와같이 가공한 후 전송처리하였다.
주의할 점은 form 태그의 속성 중 `accept-charset` 처리와 IE에서는 document.charset 처리를 별도로 해주어야 한다는 점이다.
(document.charset 같은 경우는 읽기 전용 속성이라고는 하는데 혹시몰라 추가해둔거다. 직접 바꾸려하면 안바뀌어지는게 보이긴함)
`accept-charset` 처리는 말그대로 받는 쪽에서의 언어세팅을 바꾼다는 소리다.
따라서 UTF-8에서 EUC-KR 사이트로 보낼 때 위처럼 설정하면 해결이 된다.
반응형
'Frontend > Javascript' 카테고리의 다른 글
팝업 부모창 새로고침 (0) | 2020.02.06 |
---|---|
개발자도구, 우클릭 방지 (0) | 2020.02.03 |
팝업창 열려있는지 확인 (0) | 2020.01.03 |
HTTPS에서 HTTP 파일 다운로드 스크립트 사용하고 싶을 때 (0) | 2019.12.23 |
정규식 간단하게 (0) | 2019.12.10 |