//C#的SortedDictionary<string,string>集合对key不是按照ascii码排序的因为他没有区分大小写,这就是个差别。
如果参数名中间有大写,小写,数字,SortedDictionary 排序出来,算的签名可能会与JAVA 验签不兼容, 验签失败。
下面的代码重点在:
Array.Sort(arrKeys, string.CompareOrdinal);
//将集合key以ascii码从小到大排序 public static Dictionary<string, string> AsciiDictionary(Dictionary<string, string> sArray) { Dictionary<string, string> asciiDic = new Dictionary<string, string>(); string[] arrKeys = sArray.Keys.ToArray(); Array.Sort(arrKeys, string.CompareOrdinal); foreach (var key in arrKeys) { string value = sArray[key]; asciiDic.Add(key, value); } return asciiDic; }
---------------------
作者:棉晗榜
来源:CSDN
原文:https://blog.csdn.net/u011511086/article/details/78437093
版权声明:本文为博主原创文章,转载请附上博文链接!