메뉴 건너뛰기

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


번호 제목 글쓴이 날짜 조회 수
474 유용한 함수 pack, unpack, ip2long, long2ip taknim 2009.01.13 33390
473 해커들을 위한 CMD 툴 모음 file taknim 2008.05.22 32582
472 [js & php] 비밀번호 유효성 체크 - 연속 문자, 같은 문자 taknim 2011.11.09 28789
471 [Oracle] ORA-00600, ORA-06544, ORA-06553 오류 발생시 taknim 2009.06.09 23852
470 리눅스 콘솔 단축키 taknim 2009.07.06 21958
469 리눅스 split | 파일 사이즈, 라인 단위 자르기 taknim 2008.06.19 20595
468 mcrypt 암호화/복호화 AES/CBC/PKCS5/PKCS7/PADDING [1] taknim 2010.03.19 19490
467 최고의 웹디자인용 작은 아이콘 다운로드 사이트 모음 : Best Small Icon Sites taknim 2007.07.11 18947
466 [mysql] 동적 쿼리 생성시 변수를 대입하거나 값을 받아오기 taknim 2009.08.17 17216
465 [MSSQL] MS-SQL 동적쿼리 이용하기 taknim 2009.12.28 16990
464 [google map api] 구글 맵스 API 로 지도 가져오기 taknim 2012.02.09 16977
463 [C/C++] prnitf 역슬래쉬 문자 taknim 2008.11.28 16255
462 EUC-KR <-> UTF-8 상호변환 하기 (문자셋charset 변환) taknim 2008.05.27 16114
461 [oracle] isqlplus 에서 특수문자(&) 입력하는 방법 taknim 2012.08.10 16081
460 [mysql] mysqlbinlog 실행시 캐릭터셋(utf8) 오류 taknim 2009.08.25 15778
459 [Oracle] DBNEWID Utility - DBNAME,DBID변경하기 taknim 2009.07.06 15582
458 inode 개념 taknim 2008.07.08 15368
» UTF-8 을 이용해서 다국어버젼 웹사이트 개발시 고려사항 taknim 2008.10.17 15340
456 누구나 다 아는 네트워크(소켓) 통신시의 함수 pack과 unpack taknim 2008.05.17 14614
455 Postfix SMTP 서버를 이용한 IPv6 메일(SMTP) 서버 구성 taknim 2008.02.15 14448