쓸만한 주저리

utf-8에서 한글 일부 깨짐 현상 해결법

봄돌73 2007. 11. 29. 10:07

참고(거의 출처임) : http://blog.naver.com/gachoori/140036106877

 

 

주소 : searchartist.asp?q=%EC%84%9C%ED%83%9C%EC%A7%80

 

위 주소와 같이 javascript의 encodeURIComponent() 함수를 이용해서 한글을 변환(utf-8로 변환된다고 한다.)해서 넘겼더니 아래와 같은 결과가 나왔다.

소스는 참고용

 


<%
response.charset="utf-8"

sSearchQuery=trim(request("q"))
response.write "검색어 : " & sSearchQuery & "
"
response.write "검색어 : " & server.urlencode("서태지") & "
"
response.write "검색어 : " & server.urlencode(sSearchQuery) & "
"

%>

 

검?�어 : ?�태지
검?�어 : %3F%9C%ED%83%9C%EC%A7%80
검?�어 : %3F%9C%ED%83%9C%EC%A7%80

 

위 결과를 보면 한글은 깨져서 보이지만, server.urlencode한 결과 같은 문자열이 나온 것을 볼 수 있다.

즉, 넘겨받은 "%EC%84%9C%ED%83%9C%EC%A7%80" 문자열을 제대로 "서태지"로 받아온 것이다.

그럼 한글이 깨지는 현상은 어떻게 해결할 수 있는가?

위 참고(라고 쓰고 출처라고 읽는다. ^^)에서 해결책을 찾았다.

 

주소는 마찬가지

 

<%@Language="VBScript" CODEPAGE="65001"%>


<%
response.charset="utf-8"

sSearchQuery=trim(request("q"))
response.write "검색어 : " & sSearchQuery & "
"
response.write "검색어 : " & server.urlencode("서태지") & "
"
response.write "검색어 : " & server.urlencode(sSearchQuery) & "
"

%>

 

검색어 : 서태지
검색어 : %EC%84%9C%ED%83%9C%EC%A7%80
검색어 : %EC%84%9C%ED%83%9C%EC%A7%80

 

<%@Language="VBScript" CODEPAGE="65001"%>

이 한 줄로 해결이 되어 버린다.