上傳txt文件編碼格式判斷(文本亂碼解決方法)


說明

  通過ajax或者瀏覽上傳文本文件,上傳時候c#處理時候因為文本格式的創建不同,在獲取內容時候會出現中文亂碼。

解決方法

  通過上傳的文件流,判斷文件的編碼格式,在使用對應的編碼格式獲取文本內容

  #region 通過給定的文件流,判斷文件的編碼類型
        /// <summary>
        /// 通過給定的文件流,判斷文件的編碼類型
        /// </summary>
        /// <param name=“fs“>文件流</param>
        /// <returns>文件的編碼類型</returns>
        private string GetType(byte[] fs,out string errorMsg)
        {
            string reVal = "Default";
            errorMsg = "";
            if (IsUTF8Bytes(fs,out errorMsg) || (fs[0] == 0xEF && fs[1] == 0xBB && fs[2] == 0xBF))
            {
                reVal = "UTF8";
            }
            else if (fs[0] == 0xFE && fs[1] == 0xFF && fs[2] == 0x00)
            {
                reVal = "BigEndianUnicode";
            }
            else if (fs[0] == 0xFF && fs[1] == 0xFE && fs[2] == 0x41)
            {
                reVal = "Unicode";
            }
            return reVal;

        }
        #endregion

  //獲取文本內容

  System.Text.Encoding.Default.GetString(fs)

測試結果

  Windows 平台下Default(默認格式),UTF8,BigEndianUnicode,Unicode大部分能識別到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM