0

在我的项目中;我需要查询我们的数据库,然后使用结果集生成一个固定宽度的平面文件。我正在使用基于这个问题的解决方案。对于 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 来验证结果。

4

0 回答 0