当前位置:首页 > .NET

在不使用C# Encoding类情况下编码转换

大滑稽11年前 (2014-11-22).NET1489

        /// <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;
         }

扫描二维码推送至手机访问。

版权声明:本文由第★一★次发布,如需转载请注明出处。

本文链接:https://blog.wpers.net/post/23.html

标签:C#.NET
分享给朋友:

“在不使用C# Encoding类情况下编码转换” 的相关文章

Cbo控件数据源绑定

 //Cbo控件数据源绑定DataTable DtType = noteType.GetTypeList("");         …

修改注册表限制软件使用次数

private void Form1_Load(object sender, System.EventArgs e){RegistryKey RootKey,RegKey; //项名为:HKEY_CURRENT_USER\Software…

C#获得程序集

 //获得程序集System.Reflection.Assembly assem = System.Reflection.Assembly.GetExecutingAssembly();…

C#程序防止重复运行

 Boolean mutexWasCreated;//声明一个Boolean值,用于下面的Out//true 为是否给予当前这个线程互斥的功能, true为是, false为否,也就是说是否不允许两个相同名称的线程存在//可以…

c#仿QQ会员右下角提示框

c#仿QQ会员右下角提示框

代码  using  System; using System.Collections.Generic; using System.ComponentModel; using Sy…

HttpWebRequest验证证书文件获取网页内容

         /// 传入URL返回网页的html代码        pu…