0

私のプロジェクトでは; データベースにクエリを実行し、結果セットを使用して固定幅のフラット ファイルを生成する必要があります。この質問に基づいたソリューションを使用しています。レコードの 99% についてはすべて問題ありませんが、問題を引き起こしている状況が 1 つあります。

® や ™ などの「特殊文字」の場合。テキスト ファイルに書き込むときに、列の長さが歪んでしまいます。結果を確認すると、®記号の場合は®、™の場合はâ¢となります。

後で検証/サニテーション プロセスで取り上げられるため、文字化けした文字を最終結果に残しておきたいと思います (今のところ)。(つまり、「5½」のようなサイズの場合。単純に ½ の原因を削除したくない場合は、「5」のようになります)

これらの特殊文字がシリアル化される実際の長さを取得して、それを考慮に入れる方法はありますか?

編集 テキストの書き込みを行うコードは次のとおりです。

using (var fileStream = new StreamWriter(fileName, false))
            {
                foreach (
                    var fileRecord in recordTypes.Select(record => record.RetrieveForImport(startDate, endDate)).SelectMany(records => records))
                {
                    try
                    {
                        fileStream.WriteLine(fileRecord.Serialize());
                    }
                    catch (MySerializationException ex)
                    {
                        LogSerializationError(fileRecord, ex.Message);
                    }
                }
            }

その後、TextPad を使用して結果を検証しています。

4

0 に答える 0