C# 判读取得字符编码格式

            FileStream fs1 = new FileStream(folder + strPath, FileMode.Open);

            byte[] bytes = new byte[fs1.Length];
            fs1.Read(bytes, 0, bytes.Length);
            // 设置当前流的位置为流的开始
            fs1.Seek(0, SeekOrigin.Begin);

            UniversalDetector Det = new UniversalDetector(null);
            Det.HandleData(bytes, 0, bytes.Length);
            Det.DataEnd();
            //得到文档字符编码类型
            string cLX = Det.GetDetectedCharset();       string Text = Encoding.GetEncoding(cLX).GetString(bytes);       //第2种方式
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding(cLX));
            string str1 = sr.ReadToEnd();

UniversalDetector这个是个第三方的字符编码识别,准确率还是可以的

http://pan.baidu.com/s/1pJ5C6TX

UniversalDetector 源码链接如上

C# 判读取得字符编码格式

时间: 2024-11-03 21:52:04

C# 判读取得字符编码格式的相关文章

用OC代码判断字符编码格式

总体思路: 遍历所有的字符编码,能正确读取输出转换的就是文本文件的编码格式. 代码如下: // // main.m // 检测文本字符编码格式的小技巧 // // Created by 杜子兮 (duzixi) on 14-6-21. // Copyright (c) 2014年 lanou3g.com All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]

【iOS】怎样推断文本文件的字符编码格式

整体思路: 遍历全部的字符编码.能正确读取输出转换的就是文本文件的编码格式. 代码例如以下: // // main.m // 检測文本字符编码格式的小技巧 // // Created by 杜子兮 (duzixi) on 14-6-21. // Copyright (c) 2014年 lanou3g.com All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv

不同字符编码格式之间的转换

一.概述 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符.比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储. 二.编码格式分类 1.ansi编码 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准.这些使用2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码.在简体中文系统下,ANSI 编码 代表 GB2312 编码,在日文操作系统下,ANSI 编码代表

字符编码格式

一.编码历史与区别 一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS--是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们.Let's Go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去.他们看到这样是好

转!! Eclipse设定和修改文件字符编码格式和换行符

Window -> Preferences -> General -> Workspace : Text file encoding :Default : 选择此项将设定文件为系统默认的编码格式,后边会有提示具体是什么.Other   : 选择一个具体的编码格式. New text file line delimiter :Default : 选择此项将设定新建的文件换行符为系统默认的换行符.Other   : 选择一个具体的换行符样式. 换行符分别有:Windows    : CRLF

在字符编码格式选项里UTF-8(无BOM)

BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中. UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE“. 如果接收者收到FEFF,就表明这个字节流是大字节序的:如果收到FFFE,就表明这个字节流是小字节序的.因此字符”ZERO WIDTH NO-BREAK SPACE“

在字符编码格式选项里UTF-8(无BOM)的意思

BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行 UTF8 与 UTF8 +BOM 区别 http://gkecenter.blog.163.com/blog/static/18138030520129292491090/

字符与编码(Java编码转换详细过程)

字符串在java内存中统一用unicode表示( 即utf-16 LE) , 不管是字符串字面量还是从文件中读取的,java使用unicode作为桥梁来处理各种编码的转换. 我们的java程序由.java的类文件组成,在这些类文件中都有可能包含中文字符串.并且我们常常需要和用户直接交互,用于输入和输出字符串.如:我们在jsp和servlet中得到客户端发送过来的字符串,这些字符串中包含中文字符.无论这些java类的作用如何,这些java程序的生命周期都是这样的: 1.编程人员在一定的操作系统上选

刨根究底字符编码之二——关键术语解释(下)

关键术语解释(下) 一.第1层 抽象字符表ACR (Abstract Character Repertoire抽象字符清单):明确字符的范围(即确定支持哪些字符) 1. 抽象字符表ACR是一个编码系统支持的所有抽象字符的集合,可以简单理解为无序的字符集合,用于确定字符的范围,即要支持哪些字符. 抽象字符表ACR的一个重要特点是字符的无序性,即其中的字符并没有编排数字顺序,当然也就没有数字编号. 2. "抽象"字符不具有某种特定的字形,不应与具有某种特定字形的"具体"