编码转换与网址解码
-
????????{
????????????try
????????????{????
????????????????Encoding?utf8?=?Encoding.GetEncoding(65001);
????????????????Encoding?gb2312?=?Encoding.GetEncoding("gb2312");//Encoding.Default?,936
????????????????byte[]?temp?=?utf8.GetBytes(str);
????????????????byte[]?temp1?=?Encoding.Convert(utf8,?gb2312,?temp);
????????????????string?result?=?gb2312.GetString(temp1);?
????????????????return?result;
????????????}
????????????catch??(Exception?ex)//(UnsupportedEncodingException?ex)
????????????{
????????????????MessageBox.Show(ex.ToString());
????????????????return?null;?
????????????}
????????}
????????????byte[]?bytes?=?null;
????????????char[]?chars?=?null;
????????????string?rs;
????????????string?value?=?item.Value;
????????????value?=?"C%23%E5%A6%82%E4%BD%95%E7%BC%96%E7%A0%81%E5%AD%97%E7%AC%A6%E4%B8%B2";
????????????string[]?ss?=?value.Split(new?string[]?{?"%"?},?StringSplitOptions.RemoveEmptyEntries);
????????????List<byte>?lb?=?new?List<byte>();
????????????
????????????for?(int?i?=?0;?i?<?ss.Length;?i++)
????????????{
????????????????if?(ss[i].Length?==?1)
????????????????{
????????????????????lb.AddRange(en.GetBytes(ss[i]));
????????????????}
????????????????else?if?(ss[i].Length?==?2)
????????????????{
????????????????????lb.Add(byte.Parse(ss[i],?NumberStyles.AllowHexSpecifier));
????????????????}
????????????????else
????????????????{
????????????????????lb.AddRange(en.GetBytes(ss[i].Substring(2,?ss[i].Length?-?2)));
????????????????}
????????????}
????????????bytes?=?new?byte[lb.Count];
????????????lb.CopyTo(bytes);
????????????//chars?=?new?char[en.GetCharCount(bytes,?0,?bytes.Length)];
????????????//en.GetChars(bytes,?0,?bytes.Length,?chars,?0);
????????????//rs?=?new?string(chars);
????????????rs?=?en.GetString(bytes);
編碼轉換
public?string?UTF8ToGB2312(string?str)????????{
????????????try
????????????{????
????????????????Encoding?utf8?=?Encoding.GetEncoding(65001);
????????????????Encoding?gb2312?=?Encoding.GetEncoding("gb2312");//Encoding.Default?,936
????????????????byte[]?temp?=?utf8.GetBytes(str);
????????????????byte[]?temp1?=?Encoding.Convert(utf8,?gb2312,?temp);
????????????????string?result?=?gb2312.GetString(temp1);?
????????????????return?result;
????????????}
????????????catch??(Exception?ex)//(UnsupportedEncodingException?ex)
????????????{
????????????????MessageBox.Show(ex.ToString());
????????????????return?null;?
????????????}
????????}
?
網(wǎng)址解碼子
?
Encoding?en?=?Encoding.UTF8;????????????byte[]?bytes?=?null;
????????????char[]?chars?=?null;
????????????string?rs;
????????????string?value?=?item.Value;
????????????value?=?"C%23%E5%A6%82%E4%BD%95%E7%BC%96%E7%A0%81%E5%AD%97%E7%AC%A6%E4%B8%B2";
????????????string[]?ss?=?value.Split(new?string[]?{?"%"?},?StringSplitOptions.RemoveEmptyEntries);
????????????List<byte>?lb?=?new?List<byte>();
????????????
????????????for?(int?i?=?0;?i?<?ss.Length;?i++)
????????????{
????????????????if?(ss[i].Length?==?1)
????????????????{
????????????????????lb.AddRange(en.GetBytes(ss[i]));
????????????????}
????????????????else?if?(ss[i].Length?==?2)
????????????????{
????????????????????lb.Add(byte.Parse(ss[i],?NumberStyles.AllowHexSpecifier));
????????????????}
????????????????else
????????????????{
????????????????????lb.AddRange(en.GetBytes(ss[i].Substring(2,?ss[i].Length?-?2)));
????????????????}
????????????}
????????????bytes?=?new?byte[lb.Count];
????????????lb.CopyTo(bytes);
????????????//chars?=?new?char[en.GetCharCount(bytes,?0,?bytes.Length)];
????????????//en.GetChars(bytes,?0,?bytes.Length,?chars,?0);
????????????//rs?=?new?string(chars);
????????????rs?=?en.GetString(bytes);
其實可以只用一句話:
rs?=?HttpUtility.UrlDecode(value);轉載于:https://www.cnblogs.com/wudingfeng/archive/2008/12/01/1344985.html
總結
- 上一篇: 一起认识FileShare
- 下一篇: 12月1日双星拱月