<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .net 各種文件編碼方式讀取txt文件

      txt文件,有不同的編碼方式,導入到系統有時不識別,故做以下適配。

      #region 字節流編碼格式判斷
              /// <summary>
              /// 獲取txt文件內容行
              /// 兼容不同的編碼方式
              /// </summary>
              /// <param name="stream"></param>
              /// <param name="isTrim">是否去除行兩邊空白字符</param>
              /// <param name="isBlank">是否包含空白行</param>
              /// <returns></returns>
              public static List<string> GetLinesFromTxt(Stream stream, bool isTrim = true, bool isBlank = false)
              {
                  #region 讀取txt文件
                  List<string> paragraphList = new List<string>();
                  var encoding = SowerPower.Common.Utils.GetStreamEncoding(stream);
                  using (StreamReader sr = new StreamReader(stream, encoding))
                  {
                      string lineTxt = "";
                      while ((lineTxt = sr.ReadLine()) != null)
                      {
                          var trimTxt = lineTxt.Trim();
                          if (!isBlank && trimTxt.Length == 0)
                          {
                              continue;
                          }
                          if (isTrim) paragraphList.Add(trimTxt);
                          else paragraphList.Add(lineTxt);
                      }
      
                  }
                  //sr.Close();
                  //sr.Dispose();
                  return paragraphList;
                  #endregion
              }
              /// <summary>
              /// 判斷獲取字節流 編碼格式,主要用于txt文件內容讀取
              /// </summary>
              /// <param name="fs"></param>
              /// <returns></returns>
              public static Encoding GetStreamEncoding(Stream fs)
              {
                  fs.Position = 0;
                  if (fs.Length < 2) return System.Text.Encoding.Default;
                  System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
                  Byte[] buffer = br.ReadBytes(2);
                  fs.Position = 0;
                  if (buffer[0] >= 0xEF)
                  {
                      if (buffer[0] == 0xEF && buffer[1] == 0xBB)
                      {
                          return System.Text.Encoding.UTF8;
                      }
                      else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
                      {
                          return System.Text.Encoding.BigEndianUnicode;
                      }
                      else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                      {
                          return System.Text.Encoding.Unicode;
                      }
                      else
                      {
                          return System.Text.Encoding.Default;
                      }
                  }
                  else
                  {
      
                      fs.Position = 0;
                      br = new System.IO.BinaryReader(fs);
                      buffer = br.ReadBytes((int)fs.Length);
                      fs.Position = 0;
                      ///判斷是否不帶bom的utf8格式
                      if (IsUTF8BytesWithoutBOM(buffer))
                      {
                          return new UTF8Encoding(false);
                      }
                      return System.Text.Encoding.Default;
                  }
              }
              /// <summary>
              /// 判斷是否不包含 bom的utf8格式
              /// </summary>
              /// <param name="data"></param>
              /// <returns></returns>
              private static bool IsUTF8BytesWithoutBOM(byte[] data)
              {
                  try
                  {
                      int charByteCounter = 1; //計算當前正分析的字符應還有的字節數
                      byte curByte; //當前分析的字節.
                      for (int i = 0; i < data.Length; i++)
                      {
                          curByte = data[i];
                          if (charByteCounter == 1)
                          {
                              if (curByte >= 0x80)
                              {
                                  //判斷當前
                                  while (((curByte <<= 1) & 0x80) != 0)
                                  {
                                      charByteCounter++;
                                  }
                                  //標記位首位若為非0 則至少以2個1開始 如:110XXXXX...........1111110X 
                                  if (charByteCounter == 1 || charByteCounter > 6)
                                  {
                                      return false;
                                  }
                              }
                          }
                          else
                          {
                              //若是UTF-8 此時第一位必須為1
                              if ((curByte & 0xC0) != 0x80)
                              {
                                  return false;
                              }
                              charByteCounter--;
                          }
                      }
                      if (charByteCounter > 1)
                      {
                          return false;
                          //throw new Exception("非預期的byte格式");
                      }
                      return true;
                  }
                  catch
                  {
                      return false;
                  }
              }
      
              #endregion
      
      posted @ 2024-03-08 09:25  newbigapple  閱讀(102)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美成人精品手机在线| 国模雨珍浓密毛大尺度150p| 亚洲色婷婷婷婷五月基地| 国产福利酱国产一区二区| 亚洲激情一区二区三区在线| 一区二区三区不卡国产| 久久人妻精品大屁股一区| 国内精品久久久久影院薰衣草| 亚洲尤码不卡av麻豆| 邛崃市| 东方市| 国内极度色诱视频网站| 三级国产在线观看| 在线a亚洲老鸭窝天堂| 亚洲伊人久久综合成人| 无码人妻精品一区二区三区免费| 久久精品国产99国产精品严洲 | 娇小萝被两个黑人用半米长| 亚洲黄色片一区二区三区| 国产精品伊人久久综合网| 中文字幕日韩精品亚洲一区| 97精品国产91久久久久久久| 国产麻豆91网在线看| 亚洲an日韩专区在线| 美女裸体黄网站18禁止免费下载| 国产最大成人亚洲精品| 四虎永久地址www成人| аⅴ天堂中文在线网| 国产精品一区二区蜜臀av| 国产欧美日韩亚洲一区二区三区| 电影在线观看+伦理片| 亚洲精品国产自在现线最新| 人妻少妇精品视频无码综合| 久久亚洲精品情侣| 成人亚洲国产精品一区不卡| 人妻人人澡人人添人人爽人人玩| 日韩精品无码一区二区三区视频| 久久国产免费观看精品| 国产欧美日韩一区二区加勒比| 成人午夜激情在线观看| 日韩黄色av一区二区三区|