천객만래 [千客萬來] (It has an interminable succession of visitors)
코드 페이지(code page)는 특정한 문자 인코딩 테이블을 위해 쓰이는 전통적인 IBM 용어입니다.
 아래 전체 목록에서 우리가 자주 사용하는 CP949와 euc-kr, 그리고 utf-8 에 대해서는 확인하고 넘어가야겠습니다.


구분 Charset CodePage
한국어 ks_c_5601-1987 949
IBM EBCDIC(미국-캐나다) IBM037 37
OEM 미국 IBM437 437
IBM EBCDIC(국제) IBM500 500
아랍어(ASMO 708) ASMO-708 708
아랍어(DOS) DOS-720 720
그리스어(DOS) ibm737 737
발트어(DOS) ibm775 775
서유럽어(DOS) ibm850 850
중앙 유럽어(DOS) ibm852 852
OEM 키릴 자모 IBM855 855
터키어(DOS) ibm857 857
OEM 다국 라틴 문자 I IBM00858 858
포르투갈어(DOS) IBM860 860
아이슬란드어(DOS) ibm861 861
히브리어(DOS) DOS-862 862
프랑스어(캐나다)(DOS) IBM863 863
아랍어(864) IBM864 864
북유럽어(DOS) IBM865 865
키릴 자모(DOS) cp866 866
현대 그리스어(DOS) ibm869 869
IBM EBCDIC(다국 라틴 문자-2) IBM870 870
태국어(Windows) windows-874 874
IBM EBCDIC(현대 그리스어) cp875 875
일본어(Shift-JIS) iso-2022-jp 932
중국어 간체(GB2312) gb2312 936
한국어 ks_c_5601-1987 949
중국어 번체(Big5) big5 950
IBM EBCDIC(터키어 라틴 문자-5) IBM1026 1026
IBM 라틴어-1 IBM01047 1047
IBM EBCDIC(미국-캐나다-유럽) IBM01140 1140
IBM EBCDIC(독일-유럽) IBM01141 1141
IBM EBCDIC(덴마크-노르웨이-유럽) IBM01142 1142
IBM EBCDIC(핀란드-스웨덴-유럽) IBM01143 1143
IBM EBCDIC(이탈리아-유럽) IBM01144 1144
IBM EBCDIC(스페인-유럽) IBM01145 1145
IBM EBCDIC(영국-유럽) IBM01146 1146
IBM EBCDIC(프랑스-유럽) IBM01147 1147
IBM EBCDIC(국제-유럽) IBM01148 1148
IBM EBCDIC(아이슬란드어-유럽) IBM01149 1149
유니코드 utf-16 1200
유니코드(Big-Endian) unicodeFFFE 1201
중앙 유럽어(Windows) windows-1250 1250
키릴 자모(Windows) windows-1251 1251
서유럽어(Windows) Windows-1252 1252
그리스어(Windows) windows-1253 1253
터키어(Windows) windows-1254 1254
히브리어(Windows) windows-1255 1255
아랍어(Windows) windows-1256 1256
발트어(Windows) windows-1257 1257
베트남어(Windows) windows-1258 1258
한국어(조합) Johab 1361
서유럽어(Mac) macintosh 10000
일본어(Mac) x-mac-japanese 10001
중국어 번체(Mac) x-mac-chinesetrad 10002
한국어(Mac) x-mac-korean 10003
아랍어(Mac) x-mac-arabic 10004
히브리어(Mac) x-mac-hebrew 10005
그리스어(Mac) x-mac-greek 10006
키릴 자모(Mac) x-mac-cyrillic 10007
중국어 간체(Mac) x-mac-chinesesimp 10008
루마니아어(Mac) x-mac-romanian 10010
우크라이나어(Mac) x-mac-ukrainian 10017
태국어(Mac) x-mac-thai 10021
중앙 유럽어(Mac) x-mac-ce 10029
아이슬란드어(Mac) x-mac-icelandic 10079
터키어(Mac) x-mac-turkish 10081
크로아티아어(Mac) x-mac-croatian 10082
중국어 번체(CNS) x-Chinese-CNS 20000
TCA 대만 x-cp20001 20001
중국어 번체(Eten) x-Chinese-Eten 20002
IBM5550 대만 x-cp20003 20003
TeleText 대만 x-cp20004 20004
Wang 대만 x-cp20005 20005
서유럽어(IA5) x-IA5 20105
독일어(IA5) x-IA5-German 20106
스웨덴어(IA5) x-IA5-Swedish 20107
노르웨이어(IA5) x-IA5-Norwegian 20108
US-ASCII us-ascii 20127
T.61 x-cp20261 20261
ISO-6937 x-cp20269 20269
IBM EBCDIC(독일) IBM273 20273
IBM EBCDIC(덴마크-노르웨이) IBM277 20277
IBM EBCDIC(핀란드-스웨덴) IBM278 20278
IBM EBCDIC(이탈리아) IBM280 20280
IBM EBCDIC(스페인) IBM284 20284
IBM EBCDIC(일본어 가타카나) IBM290 20290
IBM EBCDIC(프랑스) IBM297 20297
IBM EBCDIC(아랍어) IBM420 20420
IBM EBCDIC(그리스어) IBM423 20423
IBM EBCDIC(히브리어) IBM424 20424
IBM EBCDIC(한국어 확장) x-EBCDIC-KoreanExtended 20833
IBM EBCDIC(태국어) IBM-Thai 20838
키릴 자모(KOI8-R) koi8-r 20866
IBM EBCDIC(아이슬란드어) IBM871 20871
IBM EBCDIC(키릴 자모 러시아어) IBM880 20880
IBM EBCDIC(터키어) IBM905 20905
IBM 라틴어-1 IBM00924 20924
일본어(JIS 0208-1990 및 0212-1990) EUC-JP 20932
중국어 간체(GB2312-80) x-cp20936 20936
한국어(완성) x-cp20949 20949
IBM EBCDIC(키릴 자모 세르비아어-불가리아어) cp1025 21025
Ext Alpha 소문자 x-cp21027 21027
키릴 자모(KOI8-U) koi8-u 21866
서유럽어(ISO) iso-8859-1 28591
중앙 유럽어(ISO) iso-8859-2 28592
라틴어 3(ISO) iso-8859-3 28593
발트어(ISO) iso-8859-4 28594
키릴 자모(ISO) iso-8859-5 28595
아랍어(ISO) iso-8859-6 28596
그리스어(ISO) iso-8859-7 28597
히브리어(ISO-Visual) iso-8859-8 28598
터키어(ISO) iso-8859-9 28599
에스토니아어(ISO) iso-8859-13 28603
라틴어 9(ISO) iso-8859-15 28605
히브리어(ISO-Logical) iso-8859-8-i 38598
일본어(JIS) iso-2022-jp 50220
일본어(JIS-Allow 1 byte Kana) iso-2022-jp 50221
일본어(JIS-Allow 1 byte Kana - SO/SI) iso-2022-jp 50222
한국어(ISO) euc-kr 50225
중국어 간체(ISO-2022) x-cp50227 50227
일본어(EUC) euc-jp 51932
중국어 간체(EUC) EUC-CN 51936
한국어(EUC) euc-kr 51949
중국어 간체(HZ) hz-gb-2312 52936
중국어 간체(GB18030) GB18030 54936
유니코드(UTF-7) utf-7 65000
유니코드(UTF-8) utf-8 65001




Posted by SB패밀리

utf-8 방식을 추구하기 위해 원래는 코드비하인드에서 한글데이터값을 Server.UrlEncode 매서드를 사용해 인코딩해서 쿠키에 넣은후 자바스크립트에서 쿠키값을 읽어와 GET 방식으로 넘겨주려 했지만 GET방식으로 호출한 페이지에서 Server.UrlDecode 매서드를 사용해보았지만 한글데이터가 깨지는 이유로 부득이하게 Cookie가 아닌 Hidden 컨트롤을 사용하였다.

 web.config

utf-8 방식 사용

<globalization requestEncoding="utf-8" responseEncoding="utf-8" />


 

A.cs

Hidden 컨트롤에 인코딩된 데이터를 넣는다.

hidRName.Value = Server.UrlEncode(m_strRname);  <- UrlEncode 매서드를 사용하면 한글데이터를 스크립트단에서 이진데이터로 표시되게 해준다. UrlEncode  매서드를 사용하면 주소창에 한글데이터를 이진데이터로 표시해서 넘겨주는 장점이 있는것 같다.

 

A.aspx

Hidden 컨트롤값을 변수에 담는다.

var vR_NAME = document.getElementById("hidRName").value;

var avs_URL = "B.aspx?R_NAME=" + vR_NAME ;

 

B.aspx 호출

 

B.cs

TextBox 값에 넘어온 파라미터값 셋팅

txtRName.Value = Server.UrlDecode(Request["R_NAME"]);

이렇게하면 UTF-8 방식일경우 한글데이터를 넘겨받을수 있다.  ( txtRName.Value = Request["R_NAME"];  <- 이방법도 가능함. )


 

 

원래 시도하였던 방식의 자바스크립트에서 쿠키값 가져오는 함수. 좀더 보강하면 Cookie 를 사용하더라도 한글데이터가 깨지지않게 넘겨받을수 있을거 같다. (해결방법 : js 파일내에서 escape() 함수를 사용하면 된다)

// *****************************************************
// 내용 : 쿠키값 가져오기
// 작성일자 : 2007.11.29
// 작성자 : 한재준
// name : Cookie Name
// *****************************************************
function getCookie( name )
{
    var tempArr = document.cookie.split("&");
    var nameOfCookie = name + "=";
    var x = 0;
    var y = (nameOfCookie.length);
    var returnValue = "";
   
    for(var i=0; i<tempArr.length; i++)
    {
        if(tempArr[i].substring( x, y ) == nameOfCookie)
        {
            endOfCookie = tempArr[i].length;
            returnValue = unescape(tempArr[i].substring( y, endOfCookie));
            break;
        }
    }
   
    return returnValue;
}

  

Tip !

위와 같은방식으로 UrlEncode 매서드와 HtmlEncode 매서드의 차이점을 확인하기 위해서 HtmlEncode 매서드를 사용해봤으나( hidRName.Value = Server.HtmlEncode(m_strRname); )  B.cs 페이지에서  HtmlDecode 매서드를 사용해 넘어온 파라미터값을 디코딩해보았지만 한글데이터가 깨지는것을 확인하였다.
 결론은 utf-8 방식에서는 한글데이터를 GET 방식으로 넘겨줄때는 항상 UrlEncode 매서드를 사용해야 한다는 것이다

Posted by SB패밀리