الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

get Encoding txt file with arabic txt

مغلقمُجاب
بدأه KARIMSOFT في 1 فبراير 2013 · 3 رد · 2,622 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركات

كيف لي بمعرفي نوع  Encoding قبل قراءة الملف حث عندي ملفات تكست يختلف Encoding من واحد لاخر وبها كتابة عربي وهية المشكله اختلاف Encoding وهو ملفات من نظام قديم

هذا كود القراءة اريد قبل القراء معرفة الEncoding

//////////////////////////////
            TextReader sr = new StreamReader(sPathFile);//Encoding.???
            string contents = sr.ReadToEnd();
            sr.Close();
            string[] oRows = Regex.Split(contents, "\r\n");

اكرمكم الله

#2

UP

#3
السلام عليكم

 

بالنسبة لترميز الملفات لايوجد طريقة فعالة لمعرفة ترميزها وانما انت من يحدد الترميز يدويا.

يمكن الاستعانة بالمقالة التالية 

#4 أفضل إجابة

شكرا اخير علي المساعدة
لقد ابتكرت كود يفي بالغرض

 Encoding oEncoding = funGetEncoding(sPathFile);
 private static Encoding funGetEncoding(string sPathFile)
        {
            Encoding[] oEncodings = new Encoding[] { Encoding.ASCII,
                                                     Encoding.BigEndianUnicode,
                                                     Encoding.Unicode,
                                                     Encoding.UTF32,
                                                     Encoding.UTF7 ,
                                                     Encoding.UTF8,
                                                     Encoding.Default};

            foreach (Encoding oEncoding in oEncodings)
            {
                string oRows = subReadLine(sPathFile, oEncoding);
                if (Regex.IsMatch(oRows, "([ء-ي])"))
                    return oEncoding;
            }
            return Encoding.Default;
        }
private static string subReadLine(string sPathFile, Encoding oEncoding)
        {
            StreamReader sr = new StreamReader(sPathFile, oEncoding,false);
            string contents = sr.ReadLine();
            sr.Close();
            return Regex.Replace(contents, "([0-9])", "").Replace(";", "");
        }

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 3 فبراير 2013 في 03:38

1

هذا الموضوع مغلق.

مواضيع مشابهة