赞
踩
目前计算机中用得最广泛的字符集及其编码 : ASCII,unicode,utf8,gb2312,gbk等
详细介绍就篇幅太大了,本篇文章只是简单介绍以及常用转换
- //string转byte数组
- string str1 = "a";
- byte[] array = System.Text.Encoding.ASCII.GetBytes(str1);
- //byte数组转string
- string s=System.Text.Encoding.ASCII.GetString(array);//这里的array就是存放ASCII的byte数组
char与ASCII转换:
- //char转ASCII
- int asc = (int)'a';
- //ASCII转char
- char ASCIIstr1 = Convert.ToChar(asc);
string与byte数组转化:
- //string转Unicode byte数组
- string str = "aaa";
- byte[] byt = System.Text.Encoding.Unicode.GetBytes(str);
- //Unicode byte数组转string
- str = System.Text.Encoding.Unicode.GetString(byt);
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数组转化:
- //string转utf-8 byte数组
- string str = "aaa";
- byte[] byt = System.Text.Encoding.UTF8.GetBytes(str);
- //utf-8 byte数组转string
- str = System.Text.Encoding.UTF8.GetString(byt);
GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
UTF-8编码与gb2312之间转化(中间有byte数组与string转化):
- /// <summary>
- /// GB2312转换成UTF8
- /// </summary>
- /// <param name="text"></param>
- /// <returns></returns>
- public static string gb2312_utf8(string text)
- {
- //声明字符集
- System.Text.Encoding utf8, gb2312;
- //gb2312
- gb2312 = System.Text.Encoding.GetEncoding("gb2312");
- //utf8
- utf8 = System.Text.Encoding.GetEncoding("utf-8");
- byte[] gb;
- gb = gb2312.GetBytes(text);
- gb = System.Text.Encoding.Convert(gb2312, utf8, gb);
- //返回转换后的字符
- return utf8.GetString(gb);
- }
-
- /// <summary>
- /// UTF8转换成GB2312
- /// </summary>
- /// <param name="text"></param>
- /// <returns></returns>
- public static string utf8_gb2312(string text)
- {
- //声明字符集
- System.Text.Encoding utf8, gb2312;
- //utf8
- utf8 = System.Text.Encoding.GetEncoding("utf-8");
- //gb2312
- gb2312 = System.Text.Encoding.GetEncoding("gb2312");
- byte[] utf;
- utf = utf8.GetBytes(text);
- utf = System.Text.Encoding.Convert(utf8, gb2312, utf);
- //返回转换后的字符
- return gb2312.GetString(utf);
- }
GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。
string与byte数组转化:
- //string转GBK byte数组
- string str = "aa";
- System.Text.Encoding gbk = System.Text.Encoding.GetEncoding("GBK");
- byte[] byt = gbk.GetBytes(str);
- //GBK byte数组转string
- str = gbk.GetString(byt);
十进制与十六进制相互转换:
- //十进制转十六进制
- string hex = "";
- int dec = 125;
- if(x > 255)
- hex = dec.ToString("X4");
- else
- hex = dec.ToString("X2");
- //十六进制转十进制
- dec = int.Parse(hex, System.Globalization.NumberStyles.AllowHexSpecifier);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。