• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#,JavaScript汉字转换为Unicode编码Unicode编码转换为汉字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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;
    }
}
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#.NET串口编程(英,转)发布时间:2022-07-13
下一篇:
[CF797C]Minimalstring-贪心,栈发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap