c#编码总结

1、Encoding类
使用Encoding类可以获取到指定类型的Encoding对象。

Encoding e1 = Encoding.Default;//当前系统设置的“默认字符集编码方式”
Encoding e2 = Encoding.ASCII;//获取ASCII编码
Encoding e3 = Encoding.Unicode;//获取Unicode编码
Encoding e4 = Encoding.UTF32;//获取UTF32编码
Encoding e5 = Encoding.UTF7;//获取UTF7编码
Encoding e6 = Encoding.UTF8;//获取UTF8编码
Encoding e7 = Encoding.BigEndianUnicode;//获取UTF16编码
Encoding e8 = Encoding.GetEncoding(936);//获取gb2312编码

GetEncoding()方法具有以下几种重载形式。

public static Encoding GetEncoding(int codepage);
public static Encoding GetEncoding(string name);
public static Encoding GetEncoding(int codepage, EncoderFallback encoderFallback, DecoderFallback decoderFallback);
public static Encoding GetEncoding(string name, EncoderFallback encoderFallback, DecoderFallback decoderFallback);

其中的参数codepage和name表示代码页标识符、代码页名称。代码页是字符集编码的别名,也有人称”内码表”。可以调用Encoding.GetEncodings()方法查看系统包含的所有编码信息。

foreach (EncodingInfo es in Encoding.GetEncodings())
{
       SimpleLoger.WriteLog("----------------------------------");
       SimpleLoger.WriteLog("CodePage=" + es.CodePage);
       SimpleLoger.WriteLog("Name=" + es.Name);
       SimpleLoger.WriteLog("DisplayName=" + es.DisplayName);
}

下面给出部分查询结果。

CodePage=37
Name=IBM037
DisplayName=IBM EBCDIC (美国-加拿大)

CodePage=437
Name=IBM437
DisplayName=OEM 美国

CodePage=500
Name=IBM500
DisplayName=IBM EBCDIC (国际)

Encoding常用子类包含ASCIIEncoding、UTF8Encoding、UTF7Encoding、UTF32Encoding等。
这些类也可以调用Encoding的Default、ASCII、Unicode、UTF32、UTF7、UTF8、BigEndianUnicode等属性,同样可以调用GetEncoding()、GetEncodings()等方法。

2、编码和解码操作
Encoding对象具有GetString()和GetBytes()方法,用于将指定字节数组中的所有字节解码为一个字符串,反过来,将指定的字符集进行编码生成字节数组。

public static string GetString(byte[] byteArray, Encoding encode)
{
      return encode.GetString(byteArray);
}

public static byte[] GetBytes(string inputString, Encoding encode)
{
      return encode.GetBytes(inputString);
}

使用Encoding.Convert()方法可以转换编码。

byte[] byteArray = Encoding.UTF8.GetBytes(sources);//可能是从其他地方获取过来的参数  
buffer = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);  

其中Encoding.UTF8为原始编码,Encoding.ASCII为目标编码。

3、url编码解码

Server.UrlEncode("");
Server.UrlDecode("");
System.Web.HttpUtility.UrlEncode("");
System.Web.HttpUtility.UrlDecode("");
System.Uri.EscapeDataString("");
System.Uri.UnescapeDataString("");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值