固定宽度平面文件&特殊字符

时间:2012-09-11 12:42:03

标签: c# serialization

在我的项目中;我需要查询我们的数据库,然后使用结果集生成一个固定宽度的平面文件。我正在使用基于this问题的解决方案。对于99%的记录来说,一切都很好,但是我遇到了导致问题的一种情况:

如果是“特殊字符”,如®或™;当写入文本文件时,它最终会扭曲列的长度。当我检查结果时,如果是®符号,我会得到®,而如果是™,我会得到â€。

我想在最终结果(现在)中保留乱码,因为它会在验证/卫生过程中稍后被提取。 (即在大小如'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来验证结果。

0 个答案:

没有答案