سؤال

أحاول إجراء أداة صغيرة لمساعدة بعض الرجال الذين يحولون البيانات بين تثبيت SAP وتركيب Axapta.

أحصل على ملف نصي I Western European (Windows) ترميز (1252). لقد وضعوا في بعض الأحرف الخاصة ليحل محل بعض الشخصيات البولندية. الآن من وظيفتي لاستبدال تلك الأحرف الخاصة بالأحرف البولندية الصحيحة.

FileStream objFile = new FileStream(FilePath, FileMode.Open, FileAccess.Read,FileShare.Read);
StreamReader objTemp = new StreamReader(objFile, Encoding.GetEncoding(1252));

FileStream objFile2 = new FileStream(FilePath + "_new", FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter objTemp2 = new StreamWriter(objFile2, Encoding.GetEncoding(1252));

while ((strLineText = objTemp.ReadLine()) != null)
{
    for (int i = 0; i < strOuterArray.Length; i++)
    {
        string[] strInnerArray = strOuterArray[i].Split(new char[]{';'});
        strLineText = strLineText.Replace(strInnerArray[0], strInnerArray[1]);
    }

    objTemp2.WriteLine(strLineText);
}

objTemp.Close();
objTemp.Dispose();

objFile.Close();
objFile.Dispose();

objTemp2.Flush();
objTemp2.Close();

إذا قمت بتصحيح التطبيق وتعيين نقطة توقف على "objtemp2.writeline (strlinetext)؛" خط. ثم يمكنني تعيين أن القيمة داخل المتغير strlinetext مثالية. يتم استبدال السحر الخاص بالحرف البولندي الصحيح.

إذا قمت بفتح الملف المكتوب بعد ذلك، فلا يمكنني العثور على الأحرف البولندية الصحيحة. أنا أعمل مع "ś" و ""، كلاهما يتم حفظه فقط ك "S" & "في الملف.

هل فاتني شيئا ما أو قد أغفلت شيئا مهما جدا؟

هل كانت مفيدة؟

المحلول

أعتقد أن المشكلة هي أن الشخصيات البولندية المعنية غير موجودة في صفحة رمز Windows-1252.

هل يمكنك تأكيد ما إذا كانوا على هذه الشبكة?

سيكون اقتراحي هو فتح مجرى الإخراج (كاتب دفق) مع ترميز UTF-8 أو Somesuch، مما يدعم جميع الأحرف التي تحتاج إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top