Domanda

Sto cercando di fare un piccolo strumento per aiutare alcuni ragazzi conversione dei dati tra un'installazione di SAP e un'installazione Axapta.

ho un file di testo i (Windows) codifica dell'Europa occidentale (1252). Hanno messo in alcuni caratteri speciali per sostituire alcuni caratteri polacchi. Ora è il mio lavoro per sostituire quei caratteri speciali con i personaggi polacchi corretti.

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();

Se il debug l'applicazione e impostare un punto di interruzione sul "objTemp2.WriteLine (strLineText);" linea. Poi posso SE che il valore all'interno della variabile strLineText è perfetta. Il carattere speciale viene sostituito dal carattere polacco corretta.

Se apro il file scritto in seguito, allora non riesco a trovare i caratteri polacchi corretti. Sto lavorando con "S" e "S", entrambi è appena salvato come "s" e "S" nel file.

Mi sono perso qualcosa o hanno ho trascurato qualcosa di molto importante?

È stato utile?

Soluzione

Credo che il problema è che i personaggi polacchi in questione non esistono nella tabella codici di Windows-1252.

Si può confermare se sono sulla questa griglia ?

Il mio suggerimento sarebbe quello di aprire il flusso di uscita (flusso scrittore) con una codifica UTF-8 o somesuch, che sosterrà tutti i caratteri necessari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top