上传txt文件编码格式判断(文本乱码解决方法)

2018-06-18 04:31:42来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

说明

  通过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大部分能识别到

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于字符串数据插入字符串或者特殊符号的问题

下一篇:.Net程序员应该掌握的正则表达式