`
f002489
  • 浏览: 271624 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Text文档编码识别方法

    博客分类:
  • C#
 
阅读更多
http://www.cnblogs.com/preacher/p/6084802.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace 文章操作工具
{
    public class TextHelper
    {
        public static System.Text.Encoding GetType(string filename)
        {
            FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
            System.Text.Encoding r = GetType(fs);
            fs.Close();
            return r;
        }
       
        public static System.Text.Encoding GetType(FileStream fs)
        {
            /*
                                Unicode   
                                ------------------
   254

                                ======================
                                UnicodeBigEndian
                                -------------------
   255

                                ======================
                                UTF8
                                -------------------
228
229
230
231
232
233
   187
            
                                ======================
                                ANSI
                                -------------------
176
177
179
180
182
185
191
194
196
198
201
202
205
206
208
209
210
211
213
167
213
228
            */
            BinaryReader r = new BinaryReader(fs, System.Text.Encoding.Default);
            byte[] ss = r.ReadBytes(3);
            int lef = ss[0];
            int mid = ss[1];
            int rig = ss[2];
            r.Close();
            /*  文件头两个字节是255 254,为Unicode编码;
                文件头三个字节  254 255 0,为UTF-16BE编码;
                文件头三个字节  239 187 191,为UTF-8编码;*/
            if (lef == 255 && mid == 254)
            {
                return Encoding.Unicode;
            }
            else if (lef == 254 && mid == 255 && rig == 0)
            {
                return Encoding.BigEndianUnicode;
            }
            else if (lef == 254 && mid == 255)
            {
                return Encoding.BigEndianUnicode;
            }
            else if (lef == 239 && mid == 187 && rig == 191)
            {
                return Encoding.UTF8;
            }
            else if (lef == 239 && mid == 187)
            {
                return Encoding.UTF8;
            }
            else if (lef == 196 && mid == 167
                || lef == 206 && mid == 228
                || lef == 202 && mid == 213)
            {
                return Encoding.Default;
            }
            else
            {
                if (lef == 34)
                {
                    if (mid < 220) return Encoding.Default;
                    else return Encoding.UTF8;
                }
                else
                {
                    if (lef < 220) return Encoding.Default;
                    else return Encoding.UTF8;
                }
            }
        }
    }
}
分享到:
评论

相关推荐

    C# 编码自动识别 匹配文件当前编码格式

    在编程领域,尤其是在处理文本文件时,...通过分析"IdentifyEncoding.cs"和"EncodingInfo.cs"这两个文件,我们可以深入学习到C#中关于编码识别和转换的具体实现,这对于提升我们的编程技能和解决实际问题非常有帮助。

    jsp页面文档编码问题

    如果浏览器接收到的HTML文档的编码与`contentType`声明的不一致,那么在浏览器渲染页面时会出现乱码。 为了防止乱码问题,开发者应该确保以下几点: - JSP文件本身应使用一种明确的编码(如UTF-8),并在文件顶部...

    行业文档-设计装置-一种语音即时识别方法.zip

    在"行业文档-设计装置-一种语音即时识别方法.zip"的压缩包中,包含了一份名为"一种语音即时识别方法.pdf"的文件,很显然,这份文档详细介绍了这种特定的语音识别技术。 首先,语音即时识别的核心在于信号处理和模式...

    SublimeText3绿色纯净版

    1. **多文件编辑**:Sublime Text 3支持同时打开多个文件和项目,可以在多个文档之间轻松切换,提高了工作效率。 2. **代码高亮**:编辑器提供了丰富的语言支持,能自动识别并高亮显示各种编程语言的语法,使得代码...

    Ebook转Text工具

    "Ebook转Text工具"就是专为此目的设计的软件,它能够帮助用户高效地从各种Ebook格式中提取出内容并转换为简单的Text文档。以下将详细讲解这个过程中的关键知识点。 首先,了解Ebook格式。Ebook是一种电子书籍的格式...

    Python代码源码-实操案例-框架案例-解决将多个PDF文档合并为一个PDF文档时出现的编码问题.zip

    5. **处理异常**:在合并过程中,可能会遇到无法识别的编码或者PDF结构复杂导致的错误。这时,需要使用异常处理机制,尝试不同的解码策略或使用其他库(如PDFBox或Pikepdf)进行更复杂的处理。 6. **保存结果**:...

    php字符编码确定

    字符编码是计算机系统识别、存储和处理文本的基础。不同的编码方式支持不同数量和类型的字符,例如ASCII、GB2312、UTF-8等。在PHP开发中,尤其是在处理中文或多种语言内容时,字符编码的设置尤为关键。不恰当的编码...

    Predictive Methods for Text Mining

    文档的部分内容被用作说明,即使有些文字可能无法准确识别,但整体文本挖掘的概念和方法仍然清晰可辨。通过理解这些关键概念和技术,可以更好地掌握文本预测方法在文本挖掘中的应用,并在实际工作中有效利用。

    字符编码

    2. 使用`HttpServletRequest`的`setCharacterEncoding`方法设置请求的编码,但这必须在读取请求参数之前执行。 3. 如果处理HTTP响应,确保在生成HTML或其它内容时,指定正确的响应头`Content-Type`,包含字符编码,...

    完整版编码表.rar

    4. 文件编码识别与转换:在处理不同编码的文本时,正确识别和转换编码至关重要。例如,当从网页或者数据库中读取数据时,需要确定正确的编码才能正确显示中文字符。如果不匹配,可能会出现乱码现象。Python中的`...

    myeclipse 中 js文件的编码集设置问题 .doc

    尽管方法二是直接针对工程的设置,但文档中提到不推荐使用此方法,除非你的所有其他代码文件都已经是UTF-8编码。这是因为,如果你的其他代码文件使用了不同的编码,可能会导致一致性问题,从而在合并或交互时引发...

    JTS 说明文档完整中文版

    6. **数据转换与互操作**:JTS可以与常见的GIS数据格式,如ESRI的Shapefile、WKT(Well-Known Text)和GML(Geography Markup Language)等进行数据交换,文档会解释如何实现这些转换。 7. **示例代码**:开发指南...

    文件编码转换工具

    4. **BatchConverter.Utils.dll**:这是工具的辅助函数库,包含了一些通用的工具函数,如文件操作、编码识别等。 5. **BatchConverter.exe.config**:这是应用程序的配置文件,可能包含了关于默认设置、错误日志等...

    C#获取网页编码—总结.pdf

    - 网页编码是HTML文档中通过`&lt;meta&gt;`标签指定的字符编码格式,如`&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;`,用于指导浏览器正确解析网页内容。 - 当保存的文件编码与网页指定的编码...

    PHP 开发中的中文编码问题

    但有时,即使设置了正确的编码,浏览器仍可能因其他原因使用错误的编码,此时可能需要检查HTTP头信息,确保通过`header("Content-Type: text/html; charset=utf-8")`设置正确的编码。 2. 检查数据库连接和查询过程...

    javascript 文档的编码问题解决

    当一个使用UTF-8编码的页面需要引用一个使用GB2312编码的JavaScript文档时,由于编码不一致,可能会造成JavaScript代码错误,因为UTF-8编码中某些字节序列在GB2312中可能表示了不同的字符或者完全无意义。...

    SAP SCR LEGACY TEXT EDITOR GUI8.00

    此工具支持32位和64位操作系统,确保了在不同硬件环境下的兼容性,用户在安装过程中无需手动选择,程序会自动识别并适配相应的系统架构。 SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一...

    Sublime Text 2.7z

    3. **强大的语法高亮**:Sublime Text 2内置了对多种编程语言的语法高亮支持,能够帮助开发者更好地识别代码结构,提高代码可读性。 4. **代码自动完成**:编辑器提供智能代码补全功能,能根据上下文提供可能的函数...

    pdf2text,源码

    PDF2Text需要正确识别和转换字符编码,确保文本提取后的正确性。 5. 页边距和布局:PDF文档中的文本可能有各种布局,如左对齐、右对齐、居中、多列等。PDF2Text需要考虑这些布局,以保持原文的格式尽可能接近。 6....

    sublime text for Mac

    4. **多选编辑**:Sublime Text的多选编辑功能允许用户在同一时间对文档中的多个位置进行修改,方便批量替换或者调整代码。 5. **Goto Anything**:通过快捷键或菜单,用户能快速跳转到项目中的任何文件、行或符号...

Global site tag (gtag.js) - Google Analytics