AJAX 데이터 전송시 한글 오류
** 테스트 환경 **
- OS : Windows Server 2003 (IIS 6.0)
- ServerSide : ASP
- DataBase : MS-SQL 2000 Server
- Browser : IE 6, IE 8, FireFox
- Date : 2009/08/20 03:40
기존에 euc-kr 형식으로 페이지를 개발하다가 이번에 파일및 페이지형식도 UTF-8 형식으로 개발하였다.
그런데 AJAX 데이터 전송방식을 공통함수로 만들어 놓고 전송하니 기존에 잘 되던 함수에서 한글은 받지를
못하는 것이다. 이걸로 장장.. 쪽팔려서 삽질한 시간은 쓰기도 싫다.ㅋㅋ
하지만 명확한 이유는 알았다.
이미 알고 있는 사람도 많겠지만.;;
어쨌든 잊어버리지 않기 위해서 작성한다.
GET 방식으로 데이터를 전송하기 위해서는 데이터가 반드시 UTF-8 형식으로 인코딩되어 보내져야 한다.
예 ) encodeURIComponent(aId.value) // aId.value 는 전송할 파라메터 이다.
그리고 데이터를 받아서 처리하는 페이지 상단에 <%@Language = "VBScript" CodePage = "65001" %>
작성해준다. 이어서 파일형식과 문자셋이 UTF8이 아닌경우는 UTF8 엔코딩 함수를 이용하여 변환하여 처리한다.
그러나 파일형식과 문자셋이 UTF8인 경우는 그냥 출력해주어야 한다. 아니면 간혹 정상으로 나올수도 있으나 (믿을수 없는 웹!!!!!)
공백이나 처음 문자열을 + 로 표시해버리기도 한다. 그럴때는 그냥 Response.Write 처리~
아.. 피곤해.. 벌써 새벽 3시를 달리는구나..
그래도 만들어지는 웹사이트가 퀄리티가 좋아지니 기분은 좋다... 아.. 근데.. 삽질은 싫고 억울해.ㅋㅋ