码迷,mamicode.com
首页 > Web开发 > 详细

asp.net 解决文本中文乱码   各类文本编码转UTF-8 文本

时间:2014-11-27 18:46:11      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:文本中文乱码解决

 /// <summary>

        /// 解决文本中文乱码   各类文本编码转UTF-8 文本

        /// </summary>

        /// <param name="fullPath">原路径</param>

        /// <param name="savePath">临时保存路径</param>

        /// <param name="strnew">新的文件路径</param>

        /// <returns>新文件路径</returns>

        public static string  GetUtf8(string fullPath,string savePath,string strnew)

        {

                             Encoding e =GetFileEncodeType(fullPath);

                                System.IO.File.Create(savePath).Close();

                     using (StreamReader sr = new StreamReader(fullPath, e, false))

                                {

                              string utf8info = string.Empty;


                            Encoding utf8 = Encoding.UTF8;


                             // Convert the string into a byte[]. 

                           byte[] unicodeBytes = e.GetBytes(sr.ReadToEnd());

                           // Perform. the conversion from one encoding to the other. 

                           byte[] asciiBytes = Encoding.Convert(e, utf8, unicodeBytes);


                         // Convert the new byte[] into a char[] and then into a string. 

                        // This is a slightly different approach to converting tillustrate 

                      // the use of GetCharCount/GetChars. 

        char[] asciiChars = new char[utf8.GetCharCount(asciiBytes, 0, asciiBytes.Length)];

         utf8.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);

         utf8info = new string(asciiChars);

         using (StreamWriter sw = new StreamWriter(savePath, false, Encoding.UTF8))

                                    {

                                        sw.Write(utf8info);

                                    }

                                }

                                System.IO.File.Delete(fullPath);

                                System.IO.File.Copy(savePath,strnew,true);

                                System.IO.File.Delete(savePath);

                                return strnew;

        }







方法2


                    using (FileStream fs = new FileStream(fullPath, FileMode.Open))

                                {

                           using (StreamReader sr = new StreamReader(fs,Encoding.Default))

                                    {


                                        while (!sr.EndOfStream)

                                        {

                                            string sLine = sr.ReadLine();

                                            //StringBuilder b = new StringBuilder();

                                            //b.AppendLine(sLine);

                                            //另存到其他txt文件中   


                using (StreamWritersw=System.IO.File.AppendText(savepath))

                                            {

                                                //string n = b.ToString();

                                                sw.WriteLine(sLine.ToString());

                                            }

                                        }


                                    }



                                }

                                System.IO.File.Delete(fullPath);

                                string strNewFile = fullPath;

                                System.IO.File.Copy(savepath, strNewFile, true);

                                System.IO.File.Delete(savepath);

           //using (StreamReader sr = new StreamReader(strNewFile,Encoding.Default, false))

                                //{

              //    using (StreamWriter sw = new StreamWriter(fullPath, falsEncoding.UTF8))

                                //    {

                                //        sw.Write(Server.HtmlEncode(sr.ReadToEnd()));

                                //    }

                                //}

                                //System.IO.File.Delete(strNewFile);

                                FileInfo fileNew = new FileInfo(strNewFile);

                                sourcesFile.File_Size = fileNew.Length;

                                this.sourcesFileService.Save(sourcesFile);

                            }



















asp.net 解决文本中文乱码   各类文本编码转UTF-8 文本

标签:文本中文乱码解决

原文地址:http://jaycheer520.blog.51cto.com/8692340/1583304

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!