Welcome 微信登录

首页 / 网页编程 / ASP.NET / 编码,charset,乱码,unicode,utf-8与.net简单释义(续)

编码,charset,乱码,unicode,utf-8与.net简单释义(续)2012-01-18 Kevin Zou 上篇blog讲了一下unicode等编码的问题﹐不过并没有涉及程序﹐所以这次就用.net来证实一下上次的这些东东。

在证明那些东东之前﹐首先把.net中关于处理encoding,二进制,16进制,byte等相关类别和方法罗列一下。

1.byte与string(那些255以内的整数)的相互转换(各种进制之间的相互转换)

使用System.Convert类别

string to byte

Convert.ToByte(string,base)

base:2表示二进制,8表示八进制,10表示十进制,16表示十六进制(你要输入33,呵呵﹐异常)

这样可以把字符串的(0--255)转成一个byte

Convert.ToByte("01000001",2)转成 65

Convert.ToByte("255",10)转成255

Convert.ToByte("42",16)转成66

同理﹐byte to string也是Convert类

Convert.ToString(byte,base)

同样可以转成相应的进制表示的字符串

通过这两个方法﹐我们要进行2,8,10,16进制的相互转换就容易了

2.char,int,long,boolean等与byte[]之间的相互转换(这些数据在内存中的存储状况)

使用System.BitConverter类别

我们都知道char,int,long等基本类型是以字节形式存在内存中的﹐所以要查看其内存存储方式则直接使用BitConverter.GetBytes()就可以了

然后再使用BitConverter.ToString(byte[])就可以以string方式查看了(如:f9-03表示2个字节)

string是由char组成的﹐只要foreach(char in string)就可以看到string的存储方式了(实验表明﹐string在内存中是以unicode编码存在的,下有示例)