<html> <head>    <title>transform between native and ascii</title> </head> <script type="text/javascript"><!--

var keyStr = "ABCDEFGHIJKLMNOP" +

              "QRSTUVWXYZabcdef" +

              "ghijklmnopqrstuv" +

              "wxyz0123456789+/" +

              "=";

function native2ascii(strNative) {

     var output = "";

     for (var i=0; i<strNative.length; i++) {

         var c = strNative.charAt(i);

         var cc = strNative.charCodeAt(i);

         if (cc > 0xff)

           output += "\\u" + toHex(cc >> 8) + toHex(cc & 0xff);

         else

           output += c;

     }

     return output;

}

var hexChars = "0123456789ABCDEF";

function toHex(n) {

     var nH = (n >> 4) & 0x0f;

     var nL = n & 0x0f;

     return hexChars.charAt(nH) + hexChars.charAt(nL);

}

function ascii2native(strAscii) {

     var output = "";

     var posFrom = 0;

     var posTo = strAscii.indexOf("\\u", posFrom);

     while (posTo >= 0) {

         output += strAscii.substring(posFrom, posTo);

         output += toChar(strAscii.substr(posTo, 6));

         posFrom = posTo + 6;

         posTo = strAscii.indexOf("\\u", posFrom);

     }

     output += strAscii.substr(posFrom);

     return output;

}

function toChar(str) {

     if (str.substr(0, 2) != "\\u") return str;

     var code = 0;

     for (var i=2; i<str.length; i++) {

         var cc = str.charCodeAt(i);

         if (cc >= 0x30 && cc <= 0x39)

             cc = cc - 0x30;

         else if (cc >= 0x41 && cc <= 0x5A)

             cc = cc - 0x41 + 10;

         else if (cc >= 0x61 && cc <= 0x7A)

             cc = cc - 0x61 + 10;

         code <<= 4;

         code += cc;

     }

     if (code < 0xff) return str;

     return String.fromCharCode(code);

}

//--></script>

<body style="font-family: 宋体">

   <form name="theForm">

    Type in the message here, and click a command button:

    <br />

    <textarea name="theText" cols="80" rows="20" wrap="off"></textarea>

    <br />

    <input type="button" value="native to ascii"

     onClick="document.theForm.theText.value=native2ascii(document.theForm.theText.value);">

      <input type="button" value="ascii to native"

     onClick="document.theForm.theText.value=ascii2native(document.theForm.theText.value);">

   </form>

</body>

</html>

posted on 2012-03-20 08:59  千一  阅读(276)  评论(0编辑  收藏  举报