작업환경 : 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>
|