博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#字典类型转byte数组
阅读量:6462 次
发布时间:2019-06-23

本文共 2014 字,大约阅读时间需要 6 分钟。

/// <summary>

/// 参数解码

/// </summary>

/// <param name="data">要解码的字节数组</param>

/// <param name="length">从0位置开始解码的长度</param>

/// <returns>解码结果</returns>

public static Dictionary<string, string> ParamDecoding(byte[] data, int length)

{

string outs = Encoding.UTF8.GetString(data, 0, (int)length);

Dictionary<string, string> pram = new Dictionary<string, string>();

string[] list = outs.Split("|".ToArray(), StringSplitOptions.RemoveEmptyEntries);

foreach (string item in list)

{

string[] x = item.Split("=".ToArray(), StringSplitOptions.RemoveEmptyEntries);

pram.Add(WidthDecoding(x[0]), WidthDecoding(x[1]));

}

return pram;

}

/// <summary>

/// 参数编码

/// </summary>

/// <param name="param">要编码的参数集合</param>

/// <returns>编码的结果字节</returns>

public static byte[] ParamEcoding(Dictionary<string, string> param)

{

StringBuilder bf = new StringBuilder();

foreach (string item in param.Keys)

{

bf.Append(WidthEcoding(item));

//bf.Append(item);

bf.Append("=");

bf.Append(WidthEcoding(param[item]));

bf.Append("|");

//bf.Append(list[item]);

}

byte[] outs = Encoding.UTF8.GetBytes(bf.ToString());

return outs;

}

/// <summary>

/// 款字节解码

/// </summary>

/// <param name="p_Value">要解码的宽字符编码(如:\u0efx\u094f)</param>

/// <returns></returns>

public static string WidthDecoding(string p_Value)

{

//string _ReturnText = "";

StringBuilder _ReturnText = new StringBuilder();

string[] _ValueList = p_Value.Split(new char[] { '\\', 'u' }, StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i != _ValueList.Length; i++)

{

char _ValueChar = Convert.ToChar(Convert.ToUInt16(_ValueList, 16));

_ReturnText.Append(_ValueChar.ToString());

}

return _ReturnText.ToString();

}

/// <summary>

/// 宽字符编码

/// </summary>

/// <param name="s">要编码的字符串</param>

/// <returns>结果(如:\u0efx\u094f)</returns>

public static string WidthEcoding(string s)

{

StringBuilder outs = new StringBuilder();

foreach (char item in s)

{

outs.Append(string.Format("}", (int)item));

}

return outs.ToString();

}

转载于:https://www.cnblogs.com/js_c_x/archive/2011/08/05/2128882.html

你可能感兴趣的文章
js滚动加载到底部
查看>>
Virtualbox 虚拟机网络不通
查看>>
java概念基础笔记整理
查看>>
leetcode124二叉树最大路径和
查看>>
超级账本Fabric区块链用弹珠游戏Marbles 部署
查看>>
数据分析--数字找朋友
查看>>
18年selenium3+python3+unittest自动化测试教程(下)
查看>>
memcache数据库和redis数据库的区别(理论)
查看>>
我的友情链接
查看>>
MyBatis+Spring结合
查看>>
Office 365之SkyDrive Pro
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
Scala之柯里化和隐式转换
查看>>
获取androdmanifest里面的meta-data
查看>>
mysql拷贝表的几种方式
查看>>
健忘的正则
查看>>
[转]CMake快速入门教程:实战
查看>>
IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
查看>>