首页 / C# / c#unicode,中文互转
c#unicode,中文互转
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#unicode,中文互转,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2494字,纯文字阅读大概需要4分钟。
内容图文
![c#unicode,中文互转](/upload/InfoBanner/zyjiaocheng/857/1211eeb7690646b6b0861e55b892a7c5.jpg)
/// <summary> /// 中文转unicode /// </summary> /// <returns></returns> public static string unicode_0(string str) { string outStr = ""; if (!string.IsNullOrEmpty(str)) { for (int i = 0; i < str.Length; i++) { outStr += "/u" + ((int)str[i]).ToString("x"); } } return outStr; } /// <summary> /// unicode转中文 /// </summary> /// <returns></returns> public static string unicode_1(string str) { string outStr = ""; if (!string.IsNullOrEmpty(str)) { string[] strlist = str.Replace("/", "").Split('u'); try { for (int i = 1; i < strlist.Length; i++) { //将unicode字符转为10进制整数,然后转为char中文字符 outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber); } } catch (FormatException ex) { outStr = ex.Message; } } return outStr; } /// <summary> /// unicode转中文(符合js规则的) /// </summary> /// <returns></returns> public static string unicode_js_1(string str) { string outStr = ""; Regex reg = new Regex(@"(?i)\\u([0-9a-f]{4})"); outStr = reg.Replace(str, delegate (Match m1) { return ((char)Convert.ToInt32(m1.Groups[1].Value, 16)).ToString(); }); return outStr; } /// <summary> /// 中文转unicode(符合js规则的) /// </summary> /// <returns></returns> public static string unicode_js_0(string str) { string outStr = ""; string a = ""; if (!string.IsNullOrEmpty(str)) { for (int i = 0; i < str.Length; i++) { if (Regex.IsMatch(str[i].ToString(), @"[\u4e00-\u9fa5]")) { outStr += "\\u" + ((int)str[i]).ToString("x"); } else { outStr += str[i]; } } } return outStr; } /// <summary> /// JS 编码 escape() /// </summary> /// <param name="s"></param> /// <returns></returns> private string Escape(string s) { StringBuilder sb = new StringBuilder(); byte[] byteArr = System.Text.Encoding.Unicode.GetBytes(s); for (int i = 0; i < byteArr.Length; i += 2) { sb.Append("%u"); sb.Append(byteArr[i + 1].ToString("X2"));//把字节转换为十六进制的字符串表现形式 sb.Append(byteArr[i].ToString("X2")); } return sb.ToString(); } /// <summary> /// JS 编码 UnEscape() /// </summary> /// <param name="s"></param> /// <returns></returns> private string UnEscape(string s) { string str = s.Remove(0, 2);//删除最前面两个"%u" string[] strArr = str.Split(new string[] { "%u" }, StringSplitOptions.None);//以子字符串"%u"分隔 byte[] byteArr = new byte[strArr.Length * 2]; for (int i = 0, j = 0; i < strArr.Length; i++, j += 2) { byteArr[j + 1] = Convert.ToByte(strArr[i].Substring(0, 2), 16); //把十六进制形式的字串符串转换为二进制字节 byteArr[j] = Convert.ToByte(strArr[i].Substring(2, 2), 16); } str = System.Text.Encoding.Unicode.GetString(byteArr); //把字节转为unicode编码 return str; }
内容总结
以上是互联网集市为您收集整理的c#unicode,中文互转全部内容,希望文章能够帮你解决c#unicode,中文互转所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。