.Net(c#)汉字和Unicode编码互相转换实例
发布时间:2020-12-15 07:39:39 所属栏目:百科 来源:网络整理
导读:{"Tilte": "u535au5ba2u56ed","Href": "http://www.jb51.net"} 经常遇到这样内容的json字符串,原来是把其中的汉字做了Unicode编码转换。 Unicode编码: 将汉字进行UNICODE编码,如:“王”编码后就成了“王”,UNICODE字符以u开始,后面有4个数字或者
{"Tilte": "u535au5ba2u56ed","Href": "http://www.aspzz.cn"} 经常遇到这样内容的json字符串,原来是把其中的汉字做了Unicode编码转换。 Unicode编码: 将汉字进行UNICODE编码,如:“王”编码后就成了“王”,UNICODE字符以u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,“738b”是两个字符,分别是“73”“8b”。但是在将 UNICODE字符编码的内容转换为汉字的时候,字符是从后面向前处理的,所以,需要把字符按照顺序“8b”“73”进行组合得到汉字。
/// <summary> /// <summary> /// 字符串转Unicode /// </summary> /// <param name="source">源字符串</param> /// <returns>Unicode编码后的字符串</returns> public static string String2Unicode(string source) { byte[] bytes = Encoding.Unicode.GetBytes(source); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < bytes.Length; i += 2) { stringBuilder.AppendFormat("u{0}{1}",bytes[i + 1].ToString("x").PadLeft(2,'0'),bytes[i].ToString("x").PadLeft(2,'0')); } return stringBuilder.ToString(); } /// <summary> /// Unicode转字符串 /// </summary> /// <param name="source">经过Unicode编码的字符串</param> /// <returns>正常字符串</returns> public static string Unicode2String(string source) { return new Regex(@"u([0-9A-F]{4})",RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace( source,x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"),16))); } 以上这篇.Net(c#)汉字和Unicode编码互相转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 更改oracle RAC public ip,vip,scan ip和private ip
- XML序列化和空值 – C#
- c – 从模板化父级访问子类型定义
- ruby-on-rails – 来自url的Rails CarrierWave存储图像无法
- 在oracle中提取一个替代fom clob
- Ruby google_drive gem oAuth2节省
- login ---> sqlite--html---cgi(code)
- c++ 为什么Xcode 4.3.1将红色删除线通过这个受保护的变量?
- 如何在Oracle 11g r2中简单地更改XMLTYPE的节点属性值?
- ruby-on-rails – Errno :: EACCES:运行bundle时权限被拒绝