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;
}
}
}
}
}
分享到:
相关推荐
在编程领域,尤其是在处理文本文件时,...通过分析"IdentifyEncoding.cs"和"EncodingInfo.cs"这两个文件,我们可以深入学习到C#中关于编码识别和转换的具体实现,这对于提升我们的编程技能和解决实际问题非常有帮助。
如果浏览器接收到的HTML文档的编码与`contentType`声明的不一致,那么在浏览器渲染页面时会出现乱码。 为了防止乱码问题,开发者应该确保以下几点: - JSP文件本身应使用一种明确的编码(如UTF-8),并在文件顶部...
在"行业文档-设计装置-一种语音即时识别方法.zip"的压缩包中,包含了一份名为"一种语音即时识别方法.pdf"的文件,很显然,这份文档详细介绍了这种特定的语音识别技术。 首先,语音即时识别的核心在于信号处理和模式...
1. **多文件编辑**:Sublime Text 3支持同时打开多个文件和项目,可以在多个文档之间轻松切换,提高了工作效率。 2. **代码高亮**:编辑器提供了丰富的语言支持,能自动识别并高亮显示各种编程语言的语法,使得代码...
"Ebook转Text工具"就是专为此目的设计的软件,它能够帮助用户高效地从各种Ebook格式中提取出内容并转换为简单的Text文档。以下将详细讲解这个过程中的关键知识点。 首先,了解Ebook格式。Ebook是一种电子书籍的格式...
5. **处理异常**:在合并过程中,可能会遇到无法识别的编码或者PDF结构复杂导致的错误。这时,需要使用异常处理机制,尝试不同的解码策略或使用其他库(如PDFBox或Pikepdf)进行更复杂的处理。 6. **保存结果**:...
字符编码是计算机系统识别、存储和处理文本的基础。不同的编码方式支持不同数量和类型的字符,例如ASCII、GB2312、UTF-8等。在PHP开发中,尤其是在处理中文或多种语言内容时,字符编码的设置尤为关键。不恰当的编码...
文档的部分内容被用作说明,即使有些文字可能无法准确识别,但整体文本挖掘的概念和方法仍然清晰可辨。通过理解这些关键概念和技术,可以更好地掌握文本预测方法在文本挖掘中的应用,并在实际工作中有效利用。
2. 使用`HttpServletRequest`的`setCharacterEncoding`方法设置请求的编码,但这必须在读取请求参数之前执行。 3. 如果处理HTTP响应,确保在生成HTML或其它内容时,指定正确的响应头`Content-Type`,包含字符编码,...
4. 文件编码识别与转换:在处理不同编码的文本时,正确识别和转换编码至关重要。例如,当从网页或者数据库中读取数据时,需要确定正确的编码才能正确显示中文字符。如果不匹配,可能会出现乱码现象。Python中的`...
尽管方法二是直接针对工程的设置,但文档中提到不推荐使用此方法,除非你的所有其他代码文件都已经是UTF-8编码。这是因为,如果你的其他代码文件使用了不同的编码,可能会导致一致性问题,从而在合并或交互时引发...
4. **BatchConverter.Utils.dll**:这是工具的辅助函数库,包含了一些通用的工具函数,如文件操作、编码识别等。 5. **BatchConverter.exe.config**:这是应用程序的配置文件,可能包含了关于默认设置、错误日志等...
6. **数据转换与互操作**:JTS可以与常见的GIS数据格式,如ESRI的Shapefile、WKT(Well-Known Text)和GML(Geography Markup Language)等进行数据交换,文档会解释如何实现这些转换。 7. **示例代码**:开发指南...
- 网页编码是HTML文档中通过`<meta>`标签指定的字符编码格式,如`<meta http-equiv="Content-Type" content="text/html; charset=utf-8">`,用于指导浏览器正确解析网页内容。 - 当保存的文件编码与网页指定的编码...
但有时,即使设置了正确的编码,浏览器仍可能因其他原因使用错误的编码,此时可能需要检查HTTP头信息,确保通过`header("Content-Type: text/html; charset=utf-8")`设置正确的编码。 2. 检查数据库连接和查询过程...
当一个使用UTF-8编码的页面需要引用一个使用GB2312编码的JavaScript文档时,由于编码不一致,可能会造成JavaScript代码错误,因为UTF-8编码中某些字节序列在GB2312中可能表示了不同的字符或者完全无意义。...
此工具支持32位和64位操作系统,确保了在不同硬件环境下的兼容性,用户在安装过程中无需手动选择,程序会自动识别并适配相应的系统架构。 SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一...
3. **强大的语法高亮**:Sublime Text 2内置了对多种编程语言的语法高亮支持,能够帮助开发者更好地识别代码结构,提高代码可读性。 4. **代码自动完成**:编辑器提供智能代码补全功能,能根据上下文提供可能的函数...
PDF2Text需要正确识别和转换字符编码,确保文本提取后的正确性。 5. 页边距和布局:PDF文档中的文本可能有各种布局,如左对齐、右对齐、居中、多列等。PDF2Text需要考虑这些布局,以保持原文的格式尽可能接近。 6....
4. **多选编辑**:Sublime Text的多选编辑功能允许用户在同一时间对文档中的多个位置进行修改,方便批量替换或者调整代码。 5. **Goto Anything**:通过快捷键或菜单,用户能快速跳转到项目中的任何文件、行或符号...