본문 바로가기
웹관련/ASP

[ASP] euc-kr 서버에서 ajax 로 값을 넘길때 한글깨짐 해결방안

by 착한덕환 2019. 6. 17.

 

이것때문에 몇시간을 고생을 해서... 기록을 남깁니다.

 

euc-kr 은 기본적으로 파일 인코딩은 ansi 타입이다

문제는 ajax 로 한글데이터를 넘긴뒤 DB에 기록을 하면, DB에 한글값이 깨져서 등록이 됩니다...

 

[해결방안]은 넘길 한글데이터를 Ajax로 넘기기전 데이터를 escape 시켜서 데이터를 넘겨야 된다는것 입니다.

 

물론 ajax를 데이터를 받는 ASP 페이지는 당연히 상단에 아래와 같이 euc-kr 로 설정을 해주셔야 합니다.

	<%
    	Response.CharSet="euc-kr"
        Session.codepage="949"
        Response.codepage="949"
        Response.ContentType="text/html;charset=euc-kr"
	%>

 

그리고 가장 중요한 ajax를 데이터를 넘길때 아래와 같이 한글 부분은 escape 로 감싸서 넘기세요...

	$.ajax({      
		type:"POST",  
		url:"ajax.asp",		
		data:"company="+escape("우리소프트")+"&addr="+escape("서울시 강동구 강동구청"),
		dataType:"text",
		async: "false",
		success: function(data){
			if (data!='')
			{
				var obj = $.parseJSON(data);
				var txt = "";
				console.log(obj);				
			}
		},   
		error:function(e){  
			alert("code:"+e.status+"\n"+"message:"+e.responseText+"\n"+"error:"+e.error);
		}  
	});

 

이런식으로 데이터를 넘기면 깨지지 않고 DB에 잘 등록이 됩니다.

알면 간단한데.... 모르면 개고생을 하니.... 역시 기록을 해둡니다.

댓글