안녕하세요...
다음과 같은 코딩이면 당연히 한글이 깨집니다...
이유는 모든 설정이 UTF-8 로 설정 되어있으니 당연히 한글이 깨질수 밖에요....
한국어 문서를 제공하는 웹 사이트에서 흔히 쓰는 문자 인코딩은 EUC-KR 입니다.
<%@ codepage="65001" language="VBScript" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Session.CodePage = 65001
Response.ChaRset = "utf-8"
위의 4줄의 소스 전부 다 해당 페이지를 유니코드 (UTF-8) 로 출력하겠다는 뜻으로
크게 보면 같은 기능을 합니다.
하지만 세부속성이 약간의 차이가 있습니다만... 세부속성은 직접 공부하시는게...^^;
세부속성을 설명하려면... 내용이 상당히 길어지기때문에....
세부속성을 페이지 / 메타 데이터 / 세션 / 객체의 속성에 지정함에 따라서 구문상의 표현 차이가 있는겁니다.
(크게 보면 소스 4줄 같은 기능을 한다고 보시면 됩니다... ㅡ_ㅡ;;)
자 세부적인 답변 들어갑니다.
1. <%@ codepage="65001" language="VBScript" %>
해당 ASP 파일의 페이지 속성을 정의 하게 되는 부분입니다.
codepage="65001" 는 UTF-8 의 속성을 나타내는 페이지 속성이라고 보심 됩니다.
다음과 같이 페이지 속성을 수정해 주시면 될거같네요 ^^;
<%@ codepage="949" language="VBScript" %>
대표적인 텍스트 인코딩 코드 페이지 값으로는 밑에 있는대로... 나머지는 공부하시면서 찾아보세요 ^^
0 : ANSI (기본값)
949 : 한국어 (EUC-KR)
65001 : 유니코드 (UTF-8)
65535 : 유니코드 (UTF-16)
2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
해당 페이지의 (HTML,ASP,JSP,PHP 등) 정보를 가지고 있는 메타 태그를 설정하는 부분입니다.
메타 태그의 속성을 charset=utf-8" 으로 정해 주셨기 때문에 한글이 깨지는 현상이 발생합니다.
다음과 같이 메타 태그의 문자코드 세트명을 변경해 주시면 될거같네요....
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
3. Session.CodePage = 65001
Session.CodePage는 현재 세션 사용자의 동적 텍스트 인코딩 코드를 설정합니다.
코드 페이지를 설정함... 문자세트를 결정하는 정수를 값으로 받네요 ^^;
다음과 같이 코드 페이지를 설정하면 될거같네요 ^^;
Session.CodePage = 949
출처 : 나오키 니시자와의 ASP 사전 및 개인 지식