`
f002489
  • 浏览: 264444 次
  • 性别: 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;
                }
            }
        }
    }
}
分享到:
评论

相关推荐

    RFC中文文档-txt

    RFC1828 使用键控MD5进行IP鉴别 RFC1860 IPv4变量长度子网表 RFC1867 HTML中基于表单的文件上传 RFC1869 SMTP服务扩展 RFC1878 变量长度子网表格用于IPv4 RFC1883 Internet协议,版本6(IPv6)说明书 RFC1901 基于社区...

    使用BeautifulSoup进行书籍爬虫(新手必看)

    你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了,简称bs4,主要功能也是解析和提取数据,缺点是效率没有lxml...

    ML-Text-Mining:与机器学习在线竞赛有关的项目

    分析社交媒体影响者分类主题建模-识别文本的主题类别语言翻译可视化预处理案例标准化标记化-字符,单词,n-gram,句子删除停用词茎和茎词嵌入5.1)跳过语法5.2)CBOW 5.3)GloVE 5.4)FastText 位置编码传统方法言语...

    OpenSeq2Seq:使用语音识别,Text2Speech和NLP进行有效实验的工具包

    OpenSeq2Seq使用TensorFlow构建,并为训练用于神经机器翻译,自动语音识别,语音合成和语言建模的编码器-解码器模型提供了所有必要的构建块。 文档和安装说明 产品特点 型号: 神经机器翻译 自动语音识别 语音合成...

    rfc中文文档目录,包含部分翻译

    RFC948_IP 数据包通过IEEE 802.3 网络传输的两种方法 RFC949_FTP 未公开的独特命令 RFC951_引导协议(BOOTP) RFC955_朝向一个处理过程应用的传输服务 RFC962_TCP-4 的最初 RFC968 “这是开动前的黑暗” RFC974_邮件...

    科大讯飞的语音合成

    [_iflySpeechRecognizer setParameter:@"utf-8" forKey:[IFlySpeechConstant TEXT_ENCODING]]; //语法类型,本地是bnf,在线识别是abnf [_iflySpeechRecognizer setParameter:@”bnf” forKey:...

    linux.chm文档

    file file1 outputs the mime type of the file as text iconv -l 列出已知的编码 iconv -f fromEncoding -t toEncoding inputFile &gt; outputFile creates a new from the given input file by assuming it is ...

    Friso高性能中文分词器框架源码.rar

    Friso高性能中文分词器框架源码,包含开发文档。 Friso 是使用 c 语言开发的高性能中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中, 例如:MySQL,PHP,并且提供了...

    中文分词工具word-1.0,Java实现的中文分词组件多种基于词典的分词算法

    能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。 同时提供了Lucene、Solr、ElasticSearch插件。 分词使用方法: 1、快速体验 运行项目根目录下的脚本demo-word.bat可以...

    Spire.Pdf.zip 读取PDF文件中的信息

    // writer = new FileWriter("f://ExtractText.txt"); // writer.write(sb.toString()); // writer.flush(); // } catch (IOException e) { // e.printStackTrace(); // } doc.close(); } ...

    皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程

    界面库产品当前的稳定性当然是首要考虑的问题,目前可以从以下几个方面来鉴别产品的稳定性:  是否有足够多的示例Demos来演示控件库产品的各个方面的功能特性  是否已经有众多的成功案例  发布多长时间,...

    网络安全与密码学.pptx

    鉴别过程保证正确标识电子消息或文档来源; 我是 用户A A B C 伪造(fabrication) 缺乏鉴别机制时可能导致伪造 5/23/2020 7 密码学与网络安全 安全原则 完整性(integrity): 消息内容在发送方发出后和到达所要接收方...

    freemarker语法完整版

    encoding="GBK" 编码格式 parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入.注意在ftl文件里布尔值都是直接赋值 的如parse=true,而不是parse="true" 用例 /common/copyright.ftl 包含内容 ...

    JSP的系统性教材

    ……&lt;/body&gt;:用来指明文档的主体区域,网页所要显示的内容都要放置在这个 标记内。习惯将这两个标签之间的内容统称为HTML的主体。 1.2 HTML文件的基本标记 在任何一个完整的网页中应该包含头部和主体两部分。头部...

    大学计算机基础多媒体技术基础.pptx

    可用文字处理软件(如记事本和Word等)对文本进行编辑,也可对文本进行识别、翻译和发声等操作。 图形(Graphics):一般是指由计算机通过绘图软件绘制的画面,由点、线、面、体等组合而成,以矢量图形文件形式存储...

    sphinx中文语音训练手册

    本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。 本文档编写日期 2013-04-23 1、为什么要训练? sphinx4目前的版本中仅提供了英文等语音识别库。...

    Visual C++ 数据库系统开发完全手册.part2

    7.6.4 静态文本控件(Static Text) 7.6.5 按钮控件(Button) 7.6.6 编辑控件(Edit Box) 7.6.7 列表框控件(List Box) 7.6.8 组合框控件(Combo Box) 7.6.9 树视图控件(Tree Control) 7.6.10 列表视图控件...

    Visual C++ 数据库系统开发完全手册.part1

    7.6.4 静态文本控件(Static Text) 7.6.5 按钮控件(Button) 7.6.6 编辑控件(Edit Box) 7.6.7 列表框控件(List Box) 7.6.8 组合框控件(Combo Box) 7.6.9 树视图控件(Tree Control) 7.6.10 列表视图控件...

    editplus 代码编辑器html c++ jsp css

    【7】 软件技巧——关闭文档标签的便捷方法 【8】 软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示? 【9】 软件技巧——提示找不到语法文件的解决办法 【10】软件技巧——设置editplus支持其它文字,...

    使用深度学习进行反社会在线行为检测-研究论文

    我们将传统机器学习方法与深度学习方法进行比较,同时应用自然语言处理的重要进步:我们检查双向编码,将注意力机制与更简单的减少技术进行比较,并研究数据的分层表示和不同层上注意力的应用是否可能提高预测性能...

Global site tag (gtag.js) - Google Analytics