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">