메뉴 건너뛰기

Dev tips

http://blog.naver.com/chlrbwns/70035884787

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

 

        에디트플러스나 울트라 에디터에서 수정후 저장할 때 반드시 Encoding 방식을
        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" %>


번호 제목 글쓴이 날짜 조회 수
294 윈도우 리부팅.끄기.잠금 아이콘 만들기 [1] taknim 2009.01.08 9622
293 Implement Oracle's rownum using mysql taknim 2009.01.08 10794
292 오라클의 rownum 처럼 쓸수 있는 mysql 명령어가 있나요 taknim 2009.01.08 9802
291 PHP5 에서 mysql password, old_password 구현 taknim 2009.01.07 12893
290 Include 파일은 부모 디렉터리를 표시하기 위해 '..'를 사용할 수 없습니다. 와 같은 오류 발생 taknim 2009.01.06 9909
289 MySQL CSV 파일 import taknim 2008.12.30 11762
288 USB 메모리의 파일 시스템 FAT32를 NTFS로 변환하는 방법 taknim 2008.12.23 10207
287 윈도우 XP 한 폴더에 저장할 수 있는 파일의 최대 갯수? taknim 2008.12.23 12234
286 [출처] [TIP] BEEP SOUND 에 따른 에러확인하기....... taknim 2008.12.22 8169
285 윈도우XP 속도를 빠르게 하는 Tip 총정리(21개) taknim 2008.12.21 7365
284 MySQL에서 Sleep 프로세스 죽이기 taknim 2008.12.11 11736
283 [Shell]Mysql processlist 지켜 보기 [1] taknim 2008.12.11 9893
282 dtd 체크하는 스크립트 taknim 2008.12.06 10681
281 echo 와 print / include 와 require taknim 2008.12.03 10681
280 [C/C++] prnitf 역슬래쉬 문자 taknim 2008.11.28 16252
279 PHP 새로 컴파일 없이 추가 모듈 설치 taknim 2008.11.27 11964
278 [mysql] 슈퍼 update taknim 2008.11.25 9374
277 오라클에서 varchar2(4000) 데이타 넣기 taknim 2008.11.25 9638
276 [오라클] 슈퍼 updateoracle taknim 2008.11.25 9920
275 보안을 위한 php.ini 설정 [1] taknim 2008.11.12 9692