/// <summary>根据指定的url下载并返回文本数据</summary> /// <param name="det">获取字节流编码</param> /// <param name="surl">指定的url</param> /// <param name="cmode">页面编码获取模式,=0:自动,=1:每页自动,=2:自定义</param> /// <param name="pencoding">返回文本编码</param> /// <param name="pcoding">返回文本编码文本</param> /// <param name="errs">下载失败则返回错误信息</param> /// <returns>根据指定的url下载并返回文本数据</returns> public static string GetHttp(ByteEncode det, string surl, int cmode, ref Encoding pencoding, ref string pcoding, ref string errs) { try { string s = ""; WebClient wclient = new WebClient(); wclient.Credentials = CredentialCache.DefaultCredentials; byte[] bytes = wclient.DownloadData(Often.UrlEn(surl)); if (cmode == 0) { s = GetEncoding(det, bytes, ref pcoding).GetString(bytes); } else if (cmode == 1) { s = GetEncoding(det, bytes, ref pcoding).GetString(bytes); } else if (cmode == 2) { s = Encoding.GetEncoding(pcoding).GetString(bytes); } wclient.Dispose(); return(s); } catch (Exception ex) { errs = ex.Message; return(""); } }
/// <summary>读取指定字节数组编码</summary> /// <param name="det">获取字节流编码</param> /// <param name="sr">指定字节数组</param> /// <param name="pcoding">返回文本编码文本</param> public static Encoding GetEncoding(ByteEncode det, byte[] sr, ref string pcoding) { pcoding = det.GetByCode(sr); if (pcoding != "") { return(Encoding.GetEncoding(pcoding)); } else { return(Encoding.Default); } }
/// <summary> /// 返回文件的字符编码 /// </summary> /// <param name="paths">文件路径</param> /// <returns>返回文件的字符编码</returns> public static Encoding GetFileEncoding(string paths) { Encoding en = Encoding.Default; try { FileStream fs = new FileStream(paths, FileMode.Open); ByteEncode be = new ByteEncode(); string ens = be.GetByCode(fs); en = Encoding.GetEncoding(ens); fs.Close(); fs = null; } catch { } return(en); }
/// <summary>返回字节数组最接近编码</summary> /// <param name="sr">字节数组</param> /// <returns>返回字节数组最接近编码</returns> public static string GetBytesEncoding(byte[] sr) { ByteEncode be = new ByteEncode(); return(be.GetByCode(sr)); }