Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->编程语言 ->ASP.NET ->[C#]解决读写包含汉字的txt文件时乱码的问题
  相关分类: 
ASP
ViualBasic
UML / Rational Rose
PHP4/PHP5
Perl
JAVA/JSP教程
Delphi
ColdFusion
CGI
C/C++
ASP.NET
XML
  站内搜索: 
热门文章排行
热门文章排行 C#编写的windows计算器-源代码(06-04)
C# 操作文件(06-04)
c#操作word表格(06-04)
使用C#在进度条中显示复制文件的进度(06-04)
C# GridView 排序及分页(06-04)
精采文章排行
精采文章排行 用C#实现FTP搜索引擎(06-04)
对C# 2.0中匿名方法的怀疑分析(06-04)
在C#中利用DirectX实现声音播放(06-04)
使用C#在进度条中显示复制文件的进度(06-04)
C#中利用Markup Service实现HTML解析(06-04)
  ·对C# 2.0中匿名方法的怀疑分析·在C#中利用DirectX实现声音播放·使用C#在进度条中显示复制文件的进度·C#中利用Markup Service实现HTML解析为DO·c#操作word表格·C#代码操作IIS之虚拟目录·如何使用C#在发送往client的内容上加js代·[C#]解决读写包含汉字的txt文件时乱码的·C#实现根据域名查询ip实例

[C#]解决读写包含汉字的txt文件时乱码的问题

作者:Webmaster   来源:Linuxdby.com   点击:   日期:2007-06-04 [收藏] [投稿]

  IE是否经常中毒?推荐您


                {


                    targetEncoding = Encoding.Unicode;


                }


                if(byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF)//UTF8


                {

                    targetEncoding = Encoding.UTF8;


                }


                //恢复Seek位置      


                stream.Seek(origPos, SeekOrigin.Begin);


            }


            return targetEncoding;


        }


    }


}


    由于在GB2312和UTF7编码都没有BOM,所以需要指定一个默认的Encoding,在找不到合法的BOM时,将返回这个

Encoding。有谁知道如何区分GB2312和UTF7编码txt文件的方法,也请告诉我。

    由于只是static方法,所以不用new,直接通过类名调用方法,使用起来也很简单。

using System;

using Farproc.Text;

using System.Text;

using System.IO;

namespace ConsoleApplication1


{

    /// <summary>


    /// Class1 的摘要说明。


    /// </summary>

 

    class Class1


    {


        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main(string[] args)

       {

            //


            // TODO: 在此处添加代码以启动应用程序

 

            //


            string fileName = @"e:\a.txt";


            //生成一个big endian Unicode编码格式的文本文件


            StreamWriter sw = new StreamWriter(fileName, false, Encoding.BigEndianUnicode);//你可以试试其他编码,比如Encoding.GetEncoding("GB2312")或UTF8

 

            sw.Write("这是一个String");


           sw.Close();


            //读取

           Encoding fileEncoding = TxtFileEncoding.GetEncoding(fileName, Encoding.GetEncoding("GB2312"));//取得这txt文件的编码

            Console.WriteLine("这个文本文件的编码为:" + fileEncoding.EncodingName);


            StreamReader sr = new StreamReader(fileName, fileEncoding);//用该编码创建StreamReader

 

            //用下面的方法虽然可以让系统自动判断文本文件的编码格式,但是我们无法取得该文本文件的编码


            //sr.CurrentEncoding永远为 Unicode(UTF-8)

            //StreamReader sr = new StreamReader(fileName, true);


            //Console.WriteLine("这个文本文件的编码为:" + sr.CurrentEncoding.EncodingName);

 


            Console.WriteLine("这个文本文件的内容为:" + sr.ReadToEnd());

 

            sr.Close();

 

            Console.ReadLine();

 

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 下一页

上一篇:C#实现根据域名查询ip实例   下一篇:如何使用C#在发送往client的内容上加js代码
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·用C#实现FTP搜索引擎

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。