zoukankan      html  css  js  c++  java
  • js代码还原,中文字符转unicode

    eval(function(E,I,A,D,J,K,L,H){function.....

    的js

    还原的方法就很简单了,那前面的 eval(  和后面的 ) 去掉:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>代码还原</title>
    </head>
    <body>
    <TEXTAREA NAME="tx1" ROWS="10" COLS="100"></TEXTAREA>
    <SCRIPT type="text/javascript">
    document.all.tx1.value =function(E,I,A,D,J,K,L,H){ ....
    </SCRIPT>
    </body>
    </html>
    
     
    
     <script language="javascript">
     var o = "\x3c\x64\151\x76\x20\x63\154\141\x73\151\166\x3e";      
    alert(o.toString())
    </script>

    正则表达式 http://www.w3cfuns.com/portal.php?mod=topic&topicid=46 

    /**
     * 中文转unicode字符工具
     */
    function toUnicode(str, cssType) {
        var i = 0,
            l = str.length,
            result = [], //转换后的结果数组
            unicodePrefix, //unicode前缀 (example:\1234||\u1234)
            unicode16; //转换成16进制后的unicode
    
        //如果是css中使用格式为\1234之类
        unicodePrefix = (cssType && cssType.toLowerCase() === 'css') ? '\\' : '\\u';
    
        for (; i < l; i++) {
            //转为16进制的unicode, js及css里须转成16进制
            unicode16 = str.charCodeAt(i).toString(16);
            result.push( unicodePrefix + unicode16 );
        }
    
        return result.join(' ');
    }
    字符串的charCodeAt方法返回的是10进制的unicode,所以我们需要用toString(16)将其转为16进制的,才能在JS及CSS中使用,而CSS中跟JS不同的是少了个U
    
    
      //检测英文等字符排除
        function checkInput(str) {
            var charReg = /[^u0391-uFFE5]/g; //匹配英文等无需转换的字符
    
            if (charReg.test(str)) {
                msg.innerHTML = '输入字符格式有误,请输入中文等字符';
    正则/[\u0391-\uFFE5]/是用来匹配中文字符,包括标点,繁体什么的。

    中国:\u4e2d\u56fd    css:\4e2d\56fd 

     /// <summary>
        /// 字符编解码助手:
        /////////     \u840c\u59b9\u7ffb\u7a97\u8868\u767d\u57fa\u60c5\u5916\u6cc4
        /// </summary>
        public class AsciiHelper
        {
            /// <summary>
            /// 编码
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static string EncodeNonAsciiCharacters(string value)
            {
                StringBuilder sb = new StringBuilder();
                foreach (char c in value)
                {
                    if (c > 127)
                    {
                        // This character is too big for ASCII
                        string encodedValue = "\\u" + ((int)c).ToString("x4");
                        sb.Append(encodedValue);
                    }
                    else
                    {
                        sb.Append(c);
                    }
                }
                return sb.ToString();
            }
    
            /// <summary>
            /// 解码
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static string DecodeEncodedNonAsciiCharacters(string value)
            {
                return Regex.Replace(
                    value,
                    @"\\u(?<Value>[a-zA-Z0-9]{4})",
                    m =>
                    {
                        return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
                    });
            }
        }
  • 相关阅读:
    iOS 中Block以及Blocks的使用,闭包方法调用
    iOS 网络监听、判断
    微信摇一摇实现原理,视图展示
    iOS cocos2d安装以及问题解决
    iOS cocos2d游戏引擎的了解之一
    Leetcode-Valid Sudoku
    Leetcode-Count and Say
    Leetcode-Length of Last Word
    Leetcode-Merge Two Sorted Lists
    Leetcode-Add Binary
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1685377.html
Copyright © 2011-2022 走看看