티스토리 뷰

WEB TIP/ASP

utf-8 다국어 ASP 페이지

제프 2006. 7. 11. 09:52
출처: POPOLO 블로그

3년전인것 같다. 일본어 사이트를 만들어 본 일이 있다. utf-8로 만들면 된다는 힌트를 듣고, 아주 많은 시도를 했다. 그런데.. 제대로된 정보를 얻을 수 없었고, 제대로 만들지도 못했다.
좀 짜증나길래... 일본어 os에 일본어 sql을 깔아서 shift-jis로 서버를 돌리고 말았다. ^^;;
그때의 어려움을 다른 사람들이 겪지 않기를 바라면서.. 내가 가진 힌트들을 정리해 본다.

1. asp 페이지를 만든다.
2. 문자셋을 유니코드 utf-8로 변환한다.
3. 일단 아무내용도 없는 상태에서 저장한다.
4. 페이지 맨윗 줄에 <% @language='vbscript' codepage = '65001' %> 삽입.
5. head에 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 삽입
6. DB설정 char은 nchar로 varchar은 nvarchar로.. 문자형태의 형식은 모두 n이 붙은 형식으로 세팅.
7. SQL구문은 insert into testTable ( subject ) values ( N'" & subject &"' ) 처럼 값의 앞뒤를 작은따옴표로 감싸고 그 앞에 N을 붙여서 값을 INSERT한다. UPDATE로 마찬가지다. 주의할 점은 대문자 N이라는 것!
8. 이제 제대로 한 것 확인후 UTF-8로 세팅된 것 확인하면서 저장! 끝!

점검사항
가. INCLUDE되는 파일도 모두 형식이 UTF-8로 저장되어 있어야 한다. (다만, 그 INCLUDE되는 파일에  <% @language='vbscript' codepage = '65001' %> 을 붙이면 안되겠죠?)
나. .CSS나 .JS 파일 처럼 별도로 작성되어 이 페이지로 불러들여지는 파일들도 마찬가지로 모두 UTF-8로 저장되어 있어야 한다.

DB연동결과 글자가 깨진다면, 먼저... 변수 RESPONSE.WRITE를 이용하여 전달이 제대로 되는지 확인하고, 이상이 없다면 DB확인하면 된다. 이때는 6번과 7번만 확인하면 된다. 만약 변수값이 깨지고 있다면, 2,4,5번과 점검사항의 가/나를 확인해보기 바란다.

주의
utf-8이 아닌 기존 파일을 변환하여 utf-8로 만드는 경우는 주의가 필요하다. 영문은 문제없지만... 한글이 깨지는 경우가 있다. 한글이 깨지고 말면 그나마 다행인데... 때에 따라서는 알 수 없는 특수코드가 붙어버려 에러가 발생하기도 한다.
편집기의 문제라고 생각되는데... 한 두번 정상적으로 잘 되는지 테스트하고 처리하라.. 잘못하면 원본을 날리는 경우가 있다...

팁!
일본어 사이트를 만든 경우, 제대로 출력되고 있는지 확인하는 가장 쉬운 방법은  "ー" 글자를 체크해 보는 것이다. 잘못된 경우라면 이 글자가 100% 깨진다.

댓글
댓글쓰기 폼