上传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