울어라휘파람새야
ASP로 다국어를 지원하는 사이트 만들기 중 주의사항(한글깨짐 현상 등) 본문
요즘들어 다국어 게시판, 혹은 다국어 이메일 등등의 이야기를 들으시는 분들 많을거라 생각됩니다.
어느날, 갑자기 상사의 지시로 일본어 메일이나 아랍어 지원되는 게시판을 만들어내라는 요청을 받기도 하죠. ASP로 다국어를 지원하는 사이트를 만들려면 어떻게 해야하는지 차근차근 살펴보도록 하지요. 즉, 이번 강좌에서는 ASP로 완벽하게 다국어를 지원하는 방법에 대해 설명드리겠습니다.
1. 모든 ASP 코드 페이지 첫줄에 다음과 같은 코드를 추가합니다.
<% @LANGUAGE='VBSCRIPT' CODEPAGE='65001' %> |
2. Meta 테그를 다음과 같이 추가 합니다.( 메타태그는 head와 head 에 써 넣는거 아시죠? )
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> |
3. 에디트플러스나 울트라 에디터에서 수정후 저장할 때 반드시 Encoding 방식을 UTF-8 로 저장합니다.
4. DB Insert시 숫자 타입을 제외한 모든 대상에 N을 추가 합니다(Update도 마찬가지 입니다).
Insert [into] table_name [(column_list)] Value N[data_value] |
5. 현재 나와있는 업로드 컴포넌트는 Dextupload2.0 이상만 유니코드를 지원하는 것으로 알고 있고, 테스트도 해보았습니다. (완벽하게 지원하더군요. 물론, 상용입니다)
지금과 같은 방식이 아주 쉽게 완벽한 다국어 지원하는 ASP쪽 방식이라 생각 됩니다. 결과적으로는, 문자열 타입을 UTF-8 로 하시게 되면 UTF-8에 등록된 모든 다국어를 지원한다는 팁이었습니다.
이상으로 ASP로 다국어지원을 할 경우를 살펴보았습니다. 감사합니다.
----------------------------------------------------------------------------------------------------------------
Danny's(전성대 님) 유용한 ASP 팁s(태오 Tip 게시판)
-아래는 다른 자료-
http://cafe.naver.com/q69/44515
UTF-8 을 이용해서 다국어버젼 웹사이트 개발시 고려사항
UTF-8 은 하나의 웹사이트 내에서 한국어, 중국어, 일본어 등등 여러나라의 언어를 동시에 문제없이 사용해야 하는 경우 사용한다. 주로 번역회사의 웹사이트나 기업소개형 홈페이지를 한 서버내에서 각 나라별 언어로 보여줘야 하는 경우에 사용..
아래 설정은 "중국어" 버젼 개발상황에 맞게 설명해 놓은것입니다.
작업환경
O/S : 한글 Windows 2000 Server
DB : MS-SQL 2000 (En)
필수에디터 : Notepad(소스파일 저장시 UTF-8로 저장)
스타일시트 적용시..
<link href="../include/css/파일명.css" rel="stylesheet" type="text/css">
css에 폰트패밀리가 한국어나 정의 되지 않았을경우도 깨질수 있습니다.
예) Simsun / SimHei 중국어 간체
MingLiu 중국어 번체
한국어싸이트에서는 굴림, 간체, 번체
중국어 간체 사이트 에서는 간체, 번체, 굴림
각 소스페이지 상단에 헤더정보를 아래와 같이 수정함
<% session.codepage = 65001 %>
<% Response.CharSet = "UTF-8" %>
<meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8">
Database 에서..
1. 중국어가 들어가는 필드(문자열)를 nvarchar 또는 ntext 로 설정함
2. 쿼리문에서 유니코드의 값부분에 N(대문자)을 넣어준다.
<%
Insert into tblname(컬럼명) values (N'&값&‘)
%>
O/S 설정
제어판 > 국가별 옵션에서
- 사용자 로케일을 중국어(RPC)로 설정(본토인 경우)
- 시스템언어설정을 중국(간체)로 설정하고 기본값으로 설정
- 시간부분의 오전, 오후를 중국어 표기로 변경
: now() 함수 사용시 중국시간표기로 나옴
- 한글 O/S를 중국설정에 맞게 셋팅하여 사용하는 경우 now() 사용시 “오전/오후” 가 한글로 표기됨. 이 부분 해결시 아래 구문 추가함
: session.LCID=2052
- 시스템언어설정이 중국어로 되도라도 윈도우환경이 메뉴등은 한글로 표기되나, 폴더명, 파일명, 등의 한국어는 깨지며 소스파일의 한국어가 ㅁ ? 등으로 표기됨, 중국어는 제대로 보임. 즉, 한국어와 중국어가 바뀌는 현상발생함.
QueryString(GET방식)으로 넘길때 중국어가 안넘어가는 경우엔..
- server.URLEncode("변수명) 으로 넘김
asp 스크립트 내에서 변수명으로 중국어를 사용할 경우에 에러가 난다면..
소스상단에
<% session.codepage = 65001 %> 대신
<%@ codepage = 65001 %>을 넣어줌.
되도록 변수명은 영문으로 사용하는게 좋음.
ABCUpload, DEXTUpload, SiteGalaxy 등의 업로드 컴포넌트를 이용하는 폼을 넘길때
중국어가 잘 넘어오지 않는 문제
<%
Dim UploadForm
set UploadForm = server.CreateObject("ABCUpload4.XForm") '<--ABC
set UploadForm = server.CreateObject("DEXT.FileUpload") '<-- DEXT
set UploadForm = server.CreateObject("SITEGALAXYUpload.Form") '<-- SiteGalaxy
' 다음 한줄 추가
UploadForm.CodePage = 65001
'<덧글>
‘UTF-8 작업시 DEXT 업로드 컴포넌트 이외에는 UTF-8을 완벽히 지원하지 못합.
‘가끔씩 오류가 발생하므로 UTF-8 작업시는 되도록 DEXT 업로드컴포넌트를 사용할것.
%>
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">
===============================================================================