이번에 신규 사이트 작업 하면서 처음으로 utf-8 포멧으로 작업을 했는데
한글 깨지는 문제가 발생했다.
처음에는 소스파일포멧만 utf-8로 하면 될거라 생각했지만
form 전송과 DB연동되는 부분은 여지없이 한글이 깨지고 말았다.
특히 form enctype="multipart/form-data" 일때 파일포멧에 상관없이 한글이 깨졌다.
우선 파일포멧을 utf-8로 저장하고 포멧을 선언해주는 소스를 찾아서 넣었다.
<%@ codepage="65001" language="VBScript" %>
<%
Response.charset = "utf-8"
Response.ContentType="text/html"
Session.CodePage=65001
%>
Response.charset = "utf-8"
Response.ContentType="text/html"
Session.CodePage=65001
%>
위의 소스는 모든 소스의 최상단에 위치 해야한다. 안그럼 오류가 발생하기 때문에...
이걸로 asp 작업에서 한글이 깨지는 일은 없어졌다.
또 한가지의 문제 아직 한국의 사이트 제작 작업의 대부분이 euc-kr 로 작업되고 있어서인지
부가적으로 추가되는 모듈(sms,실명인증.....등)과 utf-8 호환이 안되는것들이 많은것 같다.
사이트 포멧 utf-8 에서 euc-kr 포멧에 맞춰진 sms 모듈을 http 호출로 전송해보니 한글이 깨져서 전송되었다.
그래서 utf-8 페이지에서 내용을 전송하기전 한글을 escape(string) 한 후
http 호출 하는 페이지를 euc-kr로 파일 포멧하고 받는 내용을 unescape(request_string) 하였다.
이걸로 한글이 정상적으로 전송되고 작업은 마무리 되었다.