1

私は、SAP インストールと Axapta インストールの間でデータを変換する人を支援する小さなツールを作成しようとしています。

西ヨーロッパ (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」と「S」としてファイルに保存されています。

私は何かを見逃しましたか、それとも非常に重要な何かを見落としましたか?

4

1 に答える 1

3

問題は、関連するポーランド語の文字が windows-1252 コード ページに存在しないことだと思います。

このグリッド上にあるかどうか確認できますか?

私の提案は、必要なすべての文字をサポートする UTF-8 エンコーディングなどで出力ストリーム (ストリーム ライター) を開くことです。

于 2009-12-17T16:48:41.127 に答える