{
string ScreKey = "q0GAwOvSi3FlqqqoUQtLg2FH".Substring(0, 8);
System.Text.Encoding encoding = System.Text.Encoding.BigEndianUnicode;
byte[] cipherBytes = WrapBytes(System.Text.Encoding.GetEncoding("utf-16").GetBytes(srcString),
System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(ScreKey));
String basedString = EncodeBase64String(cipherBytes);
String resultString = basedString.Replace("+", ",");
//return System.Web.HttpUtility.UrlEncode(resultString, System.Text.Encoding.GetEncoding("ISO-8859-1"));
return CustomizeUrlEncode(resultString, System.Text.Encoding.GetEncoding("ISO-8859-1"));
}
问题太复杂,我不知道你到底要在那个地方做转换
所以,我就只简单告诉你C#里怎么使用utf16le(unicode),utf16be(BigendUnicode)
var b = "abc";
//utf16le
var utf16le_bytes = Encoding.Unicode.GetBytes(b);
var utf16bg_bytes = Encoding.Convert(Encoding.Unicode, Encoding.BigEndianUnicode, utf16le_bytes);
//utf16le 小端输出:61-00-62-00-63-00
var hex16le = BitConverter.ToString(utf16le_bytes);
// uft16be 大端输出: 00 - 61 - 00 - 62 - 00 - 63
var hex16be = BitConverter.ToString(utf16bg_bytes);
//上面是编码的互相转换,但是其实你本身用BigEndianUnicode直接取就可以
//输出结果依旧是: 00 - 61 - 00 - 62 - 00 - 63
//所以我前面说,我不知道你到底想干嘛,你到底是想在那一步做
var utf16be_o = BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(b));