2008. 9. 5. 23:37

작업환경 :
        OS = 한글windows2000 server
        DB = MS-SQL2000
        개발에디터 = Ultra Editor, Notepad (노트패드는 소스화일을 저장시 utf-8로 저장하기 위해 필요함)
        mail = sendmail, 기본smtp

1. 유니코드로 작성한다.
    -소스상단에 넣어야 할 것
        <% session.codepage = 65001 %>
        <% Response.CharSet = "utf-8" %>
    -html 부분과 중국어폰트적용
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    -화일을 저장시 노트패드 등을 이용하여 utf-8로 저장함

2. DB 작업
    -중국어가 들어가는 필드(문자열)를 nvarchar로 설정
    -소스 : 유니코드의 값부분에 N을 넣어준다. (insert, select, uodate, delete 동일)
        <%
            insert into tblName (title) value (N'&variable&')
        %>

3. window2000 설정
     -제어판->국가별옵션에서
        --사용자로케일을 중국어(RPC)로 설정(본토인경우)
        --시스템언어설정을 중국(간체)로 설정하고 기본값으로 설정
        --시간부분의 오전,오후를 중국어표기로 변경(그래야 now()함수를 사용시 중국시간표기로 나옴 2002-02-12 오전 10:00에서 오전자가 중국어로 나온다는 말)
        --시스템언어설정이 중국어로 되더라도 윈도우환경이 메뉴등은 한글로 표기되나... 폴더명, 화일명 등의 한국어는 깨지며 소스화일의 한국어가 ㅁ ? 등으로 표기됨, 중국어는 제대로 보임 즉, 한국어와 중국어가 바뀌는 현상발생함.

4.asp페이지와 페이지사이의 quertstring에서 중국어가 안 넘어가는 경우 해결법
    -server.urlencode을 이용하여 넘겨주면 해결
    -소스예
            <a class='MIME' href="page1.asp?param1=<%=server.urlencode("변수명")%>">클릭하세요</a> 여기서 변수명의 실제값이 중국어이다.

5.asp페이지의 스크립트부분에서 변수에 중국어를 넣을 때 에러나는 경우 해결법
    -소스상단에 <% session.codepage = 65001 %> 대신에 <%@ CODEPAGE = 65001 %>을 넣어줌.

6.abcupload, dextupload 등을 이용하여 폼을 넘길 경우 해결법
    -소스예
    <%
        set UploadForm = server.CreateObject("ABCUpload4.XForm") 'abs일 경우
        'Set uploadForm = Server.CreateObject("DEXT.FileUpload") 'dext일 경우
        UploadForm.CodePage = 65001
     %>

7.이메일발송시 중국어 깨지는 것 해결
    -소스예
    <%
        objMail.SetLocaleIDs(936) '로케일설정을 936(중국)으로 설정하며
        body =  "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" '보내는 바디부분에
        '이페이지 상단은 session.codepage = 65001 로 타페이지와 같음
    %>

8. now()사용시 오전/오후 한글로 표기되는 경우(한글OS에서 중국으로 셋팅하여 사용하는 경우)
 session.LCID=2052

9.
queryString으로 받았는데 중국어가 깨지는 경우가 있으면...
자바로 된 실시간 쪽지에서 유저애플릿으로 쪽지내용을 보내주고 이를 쿼리스트링으로 넘겨서 받는 사람에게 실시간으로 보여줄 때 중국어, 한국어 등등 모두 가능하게 해야 되기에 이런 방법을 써봤습니다.

<script language="JavaScript">
    strMsg = window.location.search.split("msg=");
    displayMsg = strMsg[1].replace(/%20/gi," "); //  /%20/gi 패턴정규식으로 space를 " "로 바꿔줍니다.
    document.writeln("      <iframe src='./paper_receive_iner.asp?msg="+String(displayMsg)+"' width='280' height='100'     frameborder='0' marginwidth='0' marginheight='0' style='border:none;background-color:#f5f5f5'>");
    document.writeln("      </iframe>");
</script>


Posted by ToTb