一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C# 讀寫文本文件亂碼解決方案

 huanlana 2011-02-21
C# 讀寫文本文件亂碼解決方案 
 
在使用C#對(duì)文本文件讀取的時(shí)候,如果其中包含了中文,經(jīng)常會(huì)出現(xiàn)亂碼。一般解決是在StreamReader加一個(gè)編碼,我使用的是Encoding.UTF8,一般情況下使用這個(gè)參數(shù)就可以。但是,在這次我使用UTF8卻無(wú)效。而且使用,unicode和UTF32都會(huì)使用StreamReader的EndOfStream在讀取一行之后,就會(huì)變成true。我想原因可能是使用這種編碼沒(méi)有正確讀取出換行符,使讀取一次之后就到達(dá)了文件末尾。
直到后來(lái),看到一片資料,使用Encoding.GetEncoding("gb2312"),就解決了亂碼問(wèn)題??磥?lái)需要百度一下gb2312和UTF8的區(qū)別。
 
附:原文:
在對(duì)文本文件進(jìn)行讀取的時(shí)候,如果其中包含了中文,可能就會(huì)有亂碼的出現(xiàn),解決方法很簡(jiǎn)單。只需要在讀取出來(lái)的時(shí)候StreamReader加一個(gè)編碼就可以了。代碼如下:
using System.IO;
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//fileName為文件的絕對(duì)路徑
由于C#操作文件的內(nèi)容網(wǎng)上有很多,我就不詳細(xì)說(shuō)明了,下面給出兩個(gè)函數(shù),分別用來(lái)讀取和寫入文本文件,記得引用System.IO;
/// <summary>
        /// 功能:
        /// 在指定的文件filename處生成該文件,并且以內(nèi)容content來(lái)填充。
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <param name="content">文件內(nèi)容</param>
        public static void CreateFile(string filename,string content)
        {
            try
            {
//這個(gè)構(gòu)造函數(shù)的具體含義:在指定的文件fileName處,第二個(gè)參數(shù)表示是否將內(nèi)容追加到文件。如果文件存在,并且第二個(gè)參數(shù)append為false,那么將改寫文件,如果append為true,則在末尾加入內(nèi)容,如果文件不存在,則創(chuàng)建該文件,并且填充內(nèi)容。 所以就算文件不存在,我們這樣創(chuàng)建文本文件也是沒(méi)有問(wèn)題的。       
StreamWriter sw = new StreamWriter(filename,false,Encoding.GetEncoding("gb2312"));
                sw.Write(content);
                sw.Flush();
                sw.Close();
            }
            catch(IOException ioe)
            {
                throw ioe;
            }
        }
/// <summary>
        /// 功能:
        /// 在文件的最前面加入內(nèi)容content
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <param name="content">插入的內(nèi)容</param>
        public static void InsertFile(string filename,string content)
        {
            try
            {
                StreamReader sr = new StreamReader(filename,Encoding.GetEncoding("gb2312"));
                content += sr.ReadToEnd();
                sr.Close();
                CreateFile(filename,content);
            }
            catch(IOException ioe)
            {
                throw ioe;
            }
        }
        /// <summary>
        /// 功能:
        /// 在文件末尾增加指定內(nèi)容content
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <param name="content">新增內(nèi)容</param>
        public static void AppendFile(string filename,string content)
        {
            try
            {
                string filecontent = "";
                StreamReader sr = new StreamReader(filename,Encoding.GetEncoding("gb2312"));
                filecontent += sr.ReadToEnd() + content;//如果要保持文件格式則必須這么讀,不能一行一行讀!
                sr.Close();
                CreateFile(filename,filecontent);
            }
            catch(IOException ioe)
            {
                throw ioe;
            }
        }
     
摘自紅色黑客聯(lián)盟(www.) 原文:http://www./kf/201007/52582.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美激情中文字幕综合八区| 亚洲午夜av久久久精品| 亚洲超碰成人天堂涩涩| 九九热国产这里只有精品| 国产成人精品综合久久久看| 99视频精品免费视频| 国产白丝粉嫩av在线免费观看| 观看日韩精品在线视频| 久久亚洲国产视频三级黄| 国产又粗又猛又长又黄视频| 日本本亚洲三级在线播放| 久久香蕉综合网精品视频| 色婷婷视频在线精品免费观看| 国产精品二区三区免费播放心| 女厕偷窥一区二区三区在线| 亚洲精品国男人在线视频| 成人欧美一区二区三区视频| 亚洲日本韩国一区二区三区| 日韩欧美高清国内精品| 国产一区二区三区免费福利| 国产91麻豆精品成人区| 日韩精品一级一区二区| 亚洲精品中文字幕欧美| 国产美女精品午夜福利视频| 一区二区三区四区亚洲专区| 亚洲精品一区二区三区免| 亚洲少妇一区二区三区懂色| 人妻一区二区三区在线| 欧美日韩国产二三四区| 精品国产日韩一区三区| 欧美日韩国产精品黄片| 98精品永久免费视频| 国产欧美日韩精品成人专区| 激情内射日本一区二区三区| 不卡视频免费一区二区三区| 成人国产激情福利久久| 国产免费黄片一区二区| 久久国产精品熟女一区二区三区| 中文字幕乱码亚洲三区| 一区中文字幕人妻少妇 | 正在播放玩弄漂亮少妇高潮|