zoukankan      html  css  js  c++  java
  • JavaScript汉字Unicode编码相互转换 Kevin

    关键字:JavaScript 汉字转换为Unicode编码 Unicode编码转换为汉字

      JavaScript 汉字Unicode编码相互转换代码。

    JavaScript库

    -JavaScript
    var GB2312UnicodeConverter={
      ToUnicode:function(str){
        return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
      }
      ,ToGB2312:function(str){
        return unescape(str.replace(/\\u/gi,'%u'));
      }
    };



    测试代码

    -HTML
    <html><head><meta http-equiv="content-type" content="text/html" /></head><body><script>
    var GB2312UnicodeConverter={
      ToUnicode:function(str){
        return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
      }
      ,ToGB2312:function(str){
        return unescape(str.replace(/\\u/gi,'%u'));
      }
    };
    //=============测试代码
    var str='上海',unicode;
    document.write(str+'<br/>');
    unicode=GB2312UnicodeConverter.ToUnicode(str);
    document.write('汉字转换为Unicode代码:'+unicode+'<br/><br/>');
    document.write('Unicode代码转换为汉字:'+GB2312UnicodeConverter.ToGB2312(unicode));
    </script> </body></html>



    关键字:C# 汉字转换为Unicode编码 Unicode编码转换为汉字

      Unicode和汉字编码小知识
      将汉字进行UNICODE编码,如:“王”编码后就成了“\u738b”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,“738b”是两个字符,分别是“73”“8b”。但是在将 UNICODE字符编码的内容转换为汉字的时候,字符是从后面向前处理的,所以,需要把字符按照顺序“8b”“73”进行组合得到汉字

      下面是C#汉字Unicode编码相互转换代码。

    -C#
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Globalization;
    public class GB2312UnicodeConverter
    {
        /// <summary>
        /// 汉字转换为Unicode编码
        /// </summary>
        /// <param name="str">要编码的汉字字符串</param>
        /// <returns>Unicode编码的的字符串</returns>
        public static string ToUnicode(string str)
        {
            byte[] bts = Encoding.Unicode.GetBytes(str);
            string r = "";
            for (int i = 0; i < bts.Length; i += 2) r += "\\u" + bts[i + 1].ToString("x").PadLeft(2, '0') + bts[i].ToString("x").PadLeft(2, '0');
            return r;
        }
        /// <summary>
        /// 将Unicode编码转换为汉字字符串
        /// </summary>
        /// <param name="str">Unicode编码字符串</param>
        /// <returns>汉字字符串</returns>
        public static string ToGB2312(string str)
        {
            string r = "";
            MatchCollection mc = Regex.Matches(str, @"\\u([\w]{2})([\w]{2})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            byte[] bts = new byte[2];
            foreach(Match m in mc )
            {
                bts[0] = (byte)int.Parse(m.Groups[2].Value, NumberStyles.HexNumber);
                bts[1] = (byte)int.Parse(m.Groups[1].Value, NumberStyles.HexNumber);
                r += Encoding.Unicode.GetString(bts);
            }
            return r;
        }
    }
     
    Tip:貌似在.NET 4.0中unicode转汉字是有编译器直接完成的——!
  • 相关阅读:
    新发地突发新冠病例,我从北京来赶来为疾控软件开发人员分享Azure DevOps,汗
    Azure DevOps Server:还原被删除的分支
    Azure DevOps Server 拉取请求模板(Pull Request Template)
    Azure DevOps Server:使用Postman批量删除测试用例
    Visual Studio Code:在操作系统文件夹或文件上出现Open with Code菜单
    在Windows XP上访问Azure DevOps Server 2019(TFS)
    将团队项目迁移到另外一个团队项目集合中
    快速排序c++实现 快排C++代码实现
    高等代数(第四版) 王萼芳课后答案
    数据结构题集(C语言版)课后答案+源码严蔚敏、吴伟民编著
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2660438.html
Copyright © 2011-2022 走看看