C# 网络数据编码与解码(Encoder and Decoder)
2011-07-23 21:45
465 查看
该例子为在C#中对网络数据编码与解码。
引用《网络应用编程(第二版)》49页的前面的话如下:
在网络通信中,很多情况下通信双方传达的都是字符信息。但是,字符信息并不能直接从网络的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列后才能在网络中传输。将字符序列转换为字节序列的过程称为编码。当这些字节传送到网络的接收方时,接收方需要反过来将字节序列再转换为字符序列,这种过程称为解码。
下面是编码与解码的例子:
截图:
完整代码:
以上为完整代码,若不能正确编译,可直接下载打包文件进行编译:http://download.csdn.net/source/3464726
引用《网络应用编程(第二版)》49页的前面的话如下:
在网络通信中,很多情况下通信双方传达的都是字符信息。但是,字符信息并不能直接从网络的一端传递到另一端,这些字符信息首先需要被转换成一个字节序列后才能在网络中传输。将字符序列转换为字节序列的过程称为编码。当这些字节传送到网络的接收方时,接收方需要反过来将字节序列再转换为字符序列,这种过程称为解码。
下面是编码与解码的例子:
截图:
完整代码:
namespace EncoderDecoderExample { public partial class Form1 : Form { public Form1() { InitializeComponent(); txt_EncodeStart.Text = "这是一条测试数据:abc,123ABC..。。\n test string"; } private void Form1_Load(object sender, EventArgs e) { //显示现有的编码类型 foreach (EncodingInfo ei in Encoding.GetEncodings()) { Encoding en = ei.GetEncoding(); cbo_EncodeType.Items.Add(string.Format("{0}[{1}]", en.HeaderName, en.EncodingName)); } cbo_EncodeType.SelectedIndex = cbo_EncodeType.FindString("gb2312"); } private void btn_EncodeAndDecode_Click(object sender, EventArgs e) { //编码 string codeType = this.cbo_EncodeType.SelectedItem.ToString(); codeType = codeType.Substring(0, codeType.IndexOf('[')); //获得编码类型 默认选择(gb2312) Encoder encoder = Encoding.GetEncoding(codeType).GetEncoder(); //获得一个 gb2312 编码类型的编码器 char[] chars = this.txt_EncodeStart.Text.ToCharArray(); //将字符串转换为一组char数组 byte[] bytes = new byte[encoder.GetByteCount(chars, 0, chars.Length, true)]; //声明一个长度为‘编码为byte后产生的字节数’ encoder.GetBytes(chars, 0, chars.Length, bytes, 0, true); //进行编码,将chars数组中的字符编码到byte数组中 txt_EncodeOver.Text = Convert.ToBase64String(bytes); //将 8 位无符号整数数组的值转换为其用 Base64 数字编码的等效字符串 显示到控件中。 //解码 Decoder decoder = Encoding.GetEncoding(codeType).GetDecoder(); //获得编码类型为 gb2312 的解码器 int charLen = decoder.GetChars(bytes, 0, bytes.Length, chars, 0); //进行解码,将byte数组中的8位无符号整数转换为 char字符 String strResult = ""; foreach (char c in chars) strResult += c.ToString(); txt_DecodeOver.Text = strResult; } } }
以上为完整代码,若不能正确编译,可直接下载打包文件进行编译:http://download.csdn.net/source/3464726
相关文章推荐
- C# 网络数据编码与解码(Encoder and Decoder)
- UVA444 Encoder and Decoder【编码+解码】
- base64 encoder/decoder for objective-c编码及解码
- C# 字符编码解码 Encoder 和Decoder
- C#解码base64编码二进制数据的方法
- base64 encoder/decoder for objective-c编码及解码(转)
- C#解码base64编码二进制数据的方法
- 六、网络数据编码与解码
- C#网络编程之编码解码
- CocoaAsyncSocket网络通信使用之数据编码和解码(二)
- java中的url 编码(Encoder)与解码(Decoder)
- CocoaAsyncSocket网络通信使用之数据编码和解码(二)
- C# 网页编程javascript中的编码与解码 And 后台编码
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
- CocoaAsyncSocket网络通信使用之数据编码和解码(二)
- Free online urldecoder and urlencoder -免费在线URL字符串编码+解码工具
- 使用 ffmpeg 进行网络推流:拉流->解封装->解码->处理原始数据(音频、视频)->编码->编码->推流
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
- base64 encoder/decoder for objective-c编码及解码(转)