Пример #1
0
 /// <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("");
     }
 }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <summary>返回字节数组最接近编码</summary>
        /// <param name="sr">字节数组</param>
        /// <returns>返回字节数组最接近编码</returns>
        public static string GetBytesEncoding(byte[] sr)
        {
            ByteEncode be = new ByteEncode();

            return(be.GetByCode(sr));
        }