<script type="text/javascript">
var to16 = {    on : function (str) {
        var a = [], i = 0;
        
        for (; i < str.length ;) a[i] = ("00" + str.charCodeAt(i ++).toString(16)).slice(-4);
        
        return "\\u" + a.join("\\u");
    },
    
    un : function (str) {
        return unescape(str.replace(/\\/g, "%"));
    }
    
};
var str = to16.on("国");
var str2 = to16.un("\u76c5\u56fd ");
document.write(str+"<br/>");
document.write(str2+"<br/>");
</script>
已找到了转换的代码了,但有个问题我需要转换汉字,我怎么将指定的文本中是只找出汉字的出来转换

解决方案 »

  1.   

    不是很明白你的想法,但是如果是后台的话可以用
    /// <summary>
        /// 对中文进行编码
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private string escape(string value)
        {
            StringBuilder sb = new StringBuilder();
            byte[] ba = System.Text.Encoding.Unicode.GetBytes(value);
            for (int i = 0; i < ba.Length; i += 2)
            {
                sb.Append("%u");
                sb.Append(ba[i + 1].ToString("X2"));
                sb.Append(ba[i].ToString("X2"));
            }
            return sb.ToString();
        }
    这个方法去处理,页面JS有解码的方法
      

  2.   


    通过正则进行替换,如:
    <script type="text/javascript">
    var to16 = {
        on : function (str) {
            var a = [], i = 0;
            for (; i < str.length ;) a[i] = ("00" + str.charCodeAt(i ++).toString(16)).slice(-4);
            return "\\u" + a.join("\\u");
        },
        un : function (str) {
            return unescape(str.replace(/\\/g, "%"));
        }
    };var x = 'http://www.jslab.org.cn中出现的中文';var y = x.replace(/([^\x00-\xff])/ig,function(a,b){return (b)?to16.on(b):''});alert(y);alert(to16.un(y));
    </script>