当前位置:   article > 正文

Unity编码解析以及常用转换_unity转换char的类型

unity转换char的类型

目前计算机中用得最广泛的字符集及其编码 : ASCII,unicode,utf8,gb2312,gbk等

详细介绍就篇幅太大了,本篇文章只是简单介绍以及常用转换

1.ASCII


 C#中string与ASCII byte数组转换:
  1. //string转byte数组
  2. string str1 = "a";
  3. byte[] array = System.Text.Encoding.ASCII.GetBytes(str1);
  4. //byte数组转string
  5. string s=System.Text.Encoding.ASCII.GetString(array);//这里的array就是存放ASCII的byte数组

char与ASCII转换:

  1. //char转ASCII
  2. int asc = (int)'a';
  3. //ASCII转char
  4. char ASCIIstr1 = Convert.ToChar(asc);

2.unicode

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。

string与byte数组转化:

  1. //string转Unicode byte数组
  2. string str = "aaa";
  3. byte[] byt = System.Text.Encoding.Unicode.GetBytes(str);
  4. //Unicode byte数组转string
  5. str = System.Text.Encoding.Unicode.GetString(byt);

3.utf-8

UTF-8用1到6个字节编码Unicode字符。UTF-8编码可以通过屏蔽位和移位操作快速读写。常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32

UTF-8编码规则:如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。

string与byte数组转化:

  1. //string转utf-8 byte数组
  2. string str = "aaa";
  3. byte[] byt = System.Text.Encoding.UTF8.GetBytes(str);
  4. //utf-8 byte数组转string
  5. str = System.Text.Encoding.UTF8.GetString(byt);

4.gb2312

GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

UTF-8编码与gb2312之间转化(中间有byte数组与string转化):

  1. /// <summary>
  2. /// GB2312转换成UTF8
  3. /// </summary>
  4. /// <param name="text"></param>
  5. /// <returns></returns>
  6. public static string gb2312_utf8(string text)
  7. {
  8. //声明字符集
  9. System.Text.Encoding utf8, gb2312;
  10. //gb2312
  11. gb2312 = System.Text.Encoding.GetEncoding("gb2312");
  12. //utf8
  13. utf8 = System.Text.Encoding.GetEncoding("utf-8");
  14. byte[] gb;
  15. gb = gb2312.GetBytes(text);
  16. gb = System.Text.Encoding.Convert(gb2312, utf8, gb);
  17. //返回转换后的字符
  18. return utf8.GetString(gb);
  19. }
  20. /// <summary>
  21. /// UTF8转换成GB2312
  22. /// </summary>
  23. /// <param name="text"></param>
  24. /// <returns></returns>
  25. public static string utf8_gb2312(string text)
  26. {
  27. //声明字符集
  28. System.Text.Encoding utf8, gb2312;
  29. //utf8
  30. utf8 = System.Text.Encoding.GetEncoding("utf-8");
  31. //gb2312
  32. gb2312 = System.Text.Encoding.GetEncoding("gb2312");
  33. byte[] utf;
  34. utf = utf8.GetBytes(text);
  35. utf = System.Text.Encoding.Convert(utf8, gb2312, utf);
  36. //返回转换后的字符
  37. return gb2312.GetString(utf);
  38. }

5.GBK

GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。

string与byte数组转化:

  1. //string转GBK byte数组
  2. string str = "aa";
  3. System.Text.Encoding gbk = System.Text.Encoding.GetEncoding("GBK");
  4. byte[] byt = gbk.GetBytes(str);
  5. //GBK byte数组转string
  6. str = gbk.GetString(byt);

补充:

十进制与十六进制相互转换:

  1. //十进制转十六进制
  2. string hex = "";
  3. int dec = 125;
  4. if(x > 255)
  5. hex = dec.ToString("X4");
  6. else
  7. hex = dec.ToString("X2");
  8. //十六进制转十进制
  9. dec = int.Parse(hex, System.Globalization.NumberStyles.AllowHexSpecifier);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/101137?site
推荐阅读
相关标签
  

闽ICP备14008679号