본문 바로가기

프로그래밍 학습/ASP

[ASP] 한글 깨지는 방법 -> 이렇게 하면 무조건 된다.!

728x90


ASP 한글 깨지는 방법 총 정리입니다.  이거때문에 이틀을 고생했네요. 저의 원인은 ABCupload4 였지만 다른분들은 고생하지 않길 바랍니다. 


고치기전 대략 난감 이런언어를 누가만들었을까..



고치고 난 후 짜잔.~ 완성 ㅎㅎ 속이 후련하네요 ㅎㅎ






계속 이런식으로 깨졌습니다. euc-kr로 하니까 또 디비값은 잘넘어가는데 html문서상에서 깨져서 참 난감했어요. 대학교 게시판 작업을 하는중에 많은 걸 깨닫고 가네요 . 


1.ASP파일 ->UTF - 8 방식으로 인코딩 변경

※.이때 주의할 점은 상위,서브 파일들을 전부 바꿔줘야된다는점!


2.<meta charset="utf-8">


3. ASP를 UTF-8방식으로 선언 (맨 상단에 넣어주세요)

Session.CodePage = 65001

Response.CharSet = "UTF-8"%>

<% Response.CacheControl = "no-cache" %>

<% Response.AddHeader "Pragma", "no-cache" %>

<% Response.expires = -1 %>


4.ABCupload4 사용시 (한글지원)

Set upload=Server.CreateObject("ABCUpload4.XForm")

Server.ScriptTimeout=600 ->10분

upload.AbsolutePath=True ->절대경로로 함.

upload.Overwrite=False ->덮어씌우기 안함.

upload.CodePage=65001 ->한글지원하기 위해


5.ABCupload4 사용시 배열로 값을 받아올때

Dim name=upload("name")(1) 형식으로 받아옵니다. 

저는 Dim name=upload("name") 만해서 ??뷁 뭐 이런식으로 나왔어요 ㅡㅡ 



6.SQL문에서 자료형을 NVARCHAR 형태로하고 (N"필드값") 이런식으로 해주면 됩니다.


팁을 주자면 값을 넘길때 Response.Write로 값을 확인해 보시고 디비로 넘길때 깨지는지 디비에서 불러올때 깨지는지 확인을 해봐야됩니다. 보통 값을 넘길때는 1,2,3,4,5안에 정답이 있구요

디비에서 불러올때 깨지는건 6번안에 정답이 있을것 같습니다.