ClassicASP 다국어사이트 제작
페이지 정보
본문
asp에서 일본어를 구현하는데 걸림돌이 되는 부분은 크게보면 세가지입니다.
- 페이지 인코딩, form변수 전달, DB입력
그외에는 포토샵으로 작업시에 사용해야할 폰트라던가 유니코드 지원 에디터의 문제 등이 있습니다.
1. 페이지 인코딩 response로 정의하든 meta태그로 정의하든 charset=utf-8 로 정의하면 됩니다.
<% @LANGUAGE="VBscRIPT" CODEPAGE="65001" %> <!-- 페이지 최상단에 삽입 -->
<!-- 디비커넥션 -->
<%
session.codepage = 65001
response.CharSet = "utf-8"
%>
2. css에 폰트패밀리 선언
참고 : https://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1085
3. DB작업
DB작업은 다시 두가지로 분리해서 MS-SQL에 입력할 쿼리문 작성법과 테이블 구성할때의 언어설정에 관한 문제입니다.
-. 다국어관련 필드(문자열)를 nchar, nvarchar , ntext 로 설정함
-. 쿼리문에서 유니코드의 값부분에 N(대문자)을 넣어준다.
일반적 : update a set title='바보' 이렇게 하지만
다국어 : Insert into 테이블명 (컬럼명) values (N'&값&‘)
update 테이블명 set 컬럼명 = N'あいうえ'
4. ABCUpload, DEXTUpload, SiteGalaxy 등의 업로드 컴포넌트를 이용하는 폼을 넘길때
한국어, 중국어가 잘 넘어오지 않을때
<%
Dim UploadForm
set UploadForm = server.CreateObject("ABCUpload4.XForm") ' ABC upload
set UploadForm = server.CreateObject("DEXT.FileUpload") ' DEXT uploader
set UploadForm = server.CreateObject("SITEGALAXYUpload.Form") ' SiteGalaxy utf-8 사용불가
UploadForm.CodePage = 65001 ' 언어설정코드 추가 utf-8 에서 한글깨짐 해결 galaxyupload 에서 CodePage 오류
‘UTF-8 작업시 DEXT 업로드 컴포넌트 이외에는 UTF-8을 완벽히 지원하지 못함.
%>
5. CDONTS.Newmail 컴포넌트이용 이메일 발송시 중국어 깨지는 문제
<%
set ObjMail = server.CreateObject("CDONTS.Newmail")
'다음 구문을 추가함.
ObjMail.SetLocaleIDs(936) '로케일설정을 936(중국)으로 설정
%>
보내는 이메일 내용의 헤더에 아래 구문 추가
<% session.codepage = 65001 %>
<% Response.CharSet = "UTF-8" %>
<meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8">
[ CharSet을 이용한 사이트제작 ]
1. CharSet을 이용한 사이트제작
- 유니코드로 제작하는 것이 가장 바람직하지만, CharSet을 이용하여 제작도 가능합니다.
- 소스상단 가장 먼저
. 일본어
<%@ CODEPAGE = 932 %>
<% session.codepage=932 %>
. 중국어(간체)
<%@ CODEPAGE = 936 %>
<% session.codepage=936 %>
. 중국어(번체)
<%@ CODEPAGE = 950 %>
<% session.codepage=950 %>
- 캐릭터셋 적용
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> : 한국어
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> : 중국어(간체)
<meta http-equiv="Content-Type" content="text/html; charset=big5"> : 중국어(번체)
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> : 일본어
2. DB 작업
- 중국어,일본어, 한글이 들어가는 모든 varchar필드(문자열)를 nvarchar로 설정
- 소스 : 유니코드의 값부분에 N을 넣어준다. (insert, select, uodate, delete 동일)
<% insert into tblName (title) value (N'&variable&') %>
3. abcupload, dextupload 등을 이용하여 폼을 넘길 경우 해결법
<%
set UploadForm = server.CreateObject("ABCUpload4.XForm") 'abs일 경우
' set uploadForm = Server.CreateObject("DEXT.FileUpload") 'dext일 경우
UploadForm.CodePage = 932 ' 일본어 SHIFT-JIS 일때
%>
4. 중국사이트 경우 일본윈도우등에서 볼때 글자가 깨지는 현상
이 경우는 한글 폰트에 있는 일본어(중국어)와 일본(중국) 폰트에 있는 코드가 다른 글자에서 발생합니다. utf-8로 개발하면 이런 현상을 피할수 있습니다.
5. 작업환경
중국어, 일본어 사이트 제작시 가장 골치 아픈 점입니다.
드림위버 CS 이후 버전에서는 각 HTML 페이지의 Encoding 변환을 지원합니다.
드림위버 >> 새문서 또는 작업HTML 페이지 >> Modify >> Page Properties 클릭
>> Title/Encoding >> Encoding 에서 한국어, 일본어, 중국어 등을 선택
참고자료
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=57&MAEULNo=22&no=1831&ref=1831
http://webjoy.kr/480
http://devman.tistory.com/tag/%EB%8B%A4%EA%B5%AD%EC%96%B4
댓글목록
등록된 댓글이 없습니다.