zoukankan      html  css  js  c++  java
  • 字符编码 进制转换

        字符串的GB2312编码、GBK编码(ASCII码的十六进制字符串,GB2312是对ASCII码的中文扩展)

    public string StrToHex(string mStr) //返回处理后的十六进制字符串
        {
        return BitConverter.ToString(
        ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");
        }

       字符串的GB2312编码、GBK编码转换为普遍字符串 
     public string HexToStr(string mHex) // 返回十六进制代表的字符串,从10进制转为16进制 
        {
        mHex = mHex.Replace(" ", "");
        if (mHex.Length <= 0) return "";
        byte[] vBytes = new byte[mHex.Length / 2];
        for (int i = 0; i < mHex.Length; i += 2)
        if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))
        vBytes[i / 2] = 0;
        return ASCIIEncoding.Default.GetString(vBytes);
        } /* HexToStr */

       

        字符串的Unicode编码

      public static string StringToUnicode(string s)
        {
            StringBuilder outs = new StringBuilder();
            foreach (char item in s)
            {
                    outs.Append(string.Format("\\u{0:x4}", (int)item));
            }
            return outs.ToString();
        }

      

       字符串的UTF8编码

      public static string StringToUtf8(string s)
        {
            string code = "";
            foreach (byte b in Encoding.UTF8.GetBytes(s))
            {
                code += '%' + b.ToString("");
            }
            return code;
        }

        字符串转换为宽字符

         public static string StringToWChar(string s)
        {
            StringBuilder outs = new StringBuilder();
            foreach (char item in s)
            {
                if (IsEncoding(item))//判断是否编码
                {
                    outs.Append(string.Format("\\u{0:x4}", (int)item));
                }
                else//不是中文
                {
                    outs.Append(item);
                }
            }
            return outs.ToString();
        }

        private static bool IsEncoding(char cha)
        {
            string NonEncodingChats = "abcdefghijklmnopqrstuvwxyz0123456789`!@#$%^&*()_+|-=\\,./;'[]{}:<>?";
            return NonEncodingChats.IndexOf(cha) == -1;
        }

       

      想了解 "ANSI,ASCII,Unicode,UTF8的区别与联系"  点击http://www.cnblogs.com/skykang/archive/2011/11/24/2262072.html

       

  • 相关阅读:
    C语言-typedef和#define
    C语言-指针
    C语言-数据结构-结构体
    数据结构笔记
    树的存储结构
    树的基本知识
    关于矩阵
    LaTex
    札记-碎碎念
    一个大神的个人博客 博客桌面风格很棒 二次元
  • 原文地址:https://www.cnblogs.com/skykang/p/1939024.html
Copyright © 2011-2022 走看看