2008-12-26 61 views
1

我完全难住了。我有一个程序可以将存储在数据库中的信息分配给相应的类。该类具有打印方法,可以打印其字段的值。用户输入订单ID或订单日期范围,然后查找这些订单并将其打印到文本文件中。我遇到的问题是,有一次,根据你选择的id和日期,文本文件将打印出像这样的垃圾。 “〢Ⱒⰱ潋玱瑵慨湮湮扥愠岁瑥㔬㈶‸㈱琰瑓瑥Ⱜ楳楳Ɒ䱉㘬㠰㌰” 我完全无能为力,因为当我调试它时,所有的值在类,打印方法和结果集中正确显示。可能是什么问题呢?有没有人发生过这种事?打印出来的文本文件存在问题

操作系统是Windows Vista,我使用的语言是C#。我正在使用FileStream作为参数的StreamWriter类。

这只发生在一些命令。就像我选择7号顺序或者1-6号顺序一样,它可以正常工作,但是如果我选择1-7号,我会得到奇怪的语言。 ????

由于

+0

我确定这是一种达芬奇密码。我让谷歌从中文翻译它:“陈凯钊t of ge water mas Orlando Orlando Orlando Orlando Orlando a a'a b㈱Lian outⰬⰬⰬⰬ;;;;;;;;;;;;;;;; – splattne 2008-12-26 18:15:56

回答

4

根据您的评论会发生什么情况是记事本尝试猜测文件的编码。 Look here for how it does so

您应该明确说明文件的编码。

From the documentation

的StreamWriter默认为,除非另有指定使用UTF8Encoding的一个实例。 UTF8Encoding的这个实例没有一个字节顺序标记(BOM),所以它的GetPreamble方法返回一个空的字节数组。要使用UTF-8编码和BOM创建StreamWriter,请考虑使用指定编码的构造函数,如StreamWriter(String,Boolean,Encoding)。

2

看起来像一个坏转换到/从Unicode,或培养变量被设置,而不是正确应用。