All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
如何最大限度提高.NET的性能,(续)_.net资料_编程技术
PHP,has,encountered,an,Access,Violation解决方法总结_php资料_编程技术
数据库优化之让你的SQL运行得更快_[SQL Server教程]
PHP安全之:重燃你的Php安全之火_php资料_编程技术
PHP教程:用PHP程序对网页表单的处理_[PHP教程]
用.net,处理xmlHttp发送异步请求_.net资料_编程技术
visual c++中打印基础
弹出窗口window.open()的参数列表_[Html教程]
Asp.Net生成静态页面实例代码_[Asp.Net教程]
delphi按钮组件(TButton)使用实例
Reading number is top 10 pictures
支持判处贩卖儿童者死刑
The money of more than 100 countries and regions2
Black and white also sexy--YanLiu2
The hot big eye big breast beauty1
Black and white also sexy--YanLiu1
粉红蕾丝的美女
Green sweet joey wong young old photos exposure
传几朵花
The money of more than 100 countries and regions14
男人帮杂志里的惹火性感美女1
Download software ranking
WebService在.NET中的实战应用教学视频 → 第2集
Boxer vs Yellow3
尖东毒玫瑰A
The Bermuda triangle3
超级战舰
Unix video tutorial15
matrix1
中国结婚习俗实录
小黑猫大战两米大花蛇
徐若瑄成名作“魔鬼天使”
aaa published in(发表于) 2013/12/18 7:57:10 Edit(编辑)
ASP.NET自动识别GB2312与UTF-8编码的文件_.net资料_编程技术

ASP.NET自动识别GB2312与UTF-8编码的文件_.net资料_编程技术

ASP.NET自动识别GB2312与UTF-8编码的文件_.net资料_编程技术-你的首页-uuhomepage.com

Question


在简体中文系统中,我们有时候需要打开一个保存在磁盘上的纯文本文件,例如txt,但却不知道其保存编码,该怎么办呢?


如果文本只需要在Windows上显示,那就很幸运了,因为无论是GB2312还是UTF-8编码的string都能够正确显示。但如果需要输出到ASP.NET页面上就不是那么简单了,因为如果页面编码为UTF-8但纯文本文件导入的string是GB2312,那就会导致乱码,反之亦然。因此,我们需要一种方法自动识别磁盘上的纯文本文件到底是么编码的。


Answer


StreamReader其实是有编码自动检测功能,不过因为它仅仅检测前3个字节,所以只能UTF-8、Little-Endian Unicode、Big-Endian Unicode之前作出选择,如果上述3个都不匹配,就选择用户提供的编码。因此,我们可以提供GB2312编码给StreamReader,让它在GB2312和UTF-8之前自动作出选择。


using (StreamReader reader = new StreamReader(path, Encoding.Default)
{
string line;
while ((line = reader.ReadLine()) != null)
{
FileTextBox.InnerHtml += Server.HtmlEncode(line) + "\r\n";
}
FileEncodingNameLabel.Text = reader.CurrentEncoding.EncodingName;
}


上述代码使用Encoding.Default初始化StreamReader,Encoding.Default指的是系统的默认ANSI编码,在简体中文系统中就是GB2312。这样写能够让代码保持有一定的兼容性,例如在繁体中文系统就变成了自动在Big5和UTF-8之间做出选择。之后的代码就是用StreamReader逐行读取文件内容并放到FileTextBox中,最后通过StreamReader的CurrentEncoding属性获取编码名称并显示在FileEncodingNameLabel中。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.