我正在尝试生成一个位模式(重复字符串)并导出到一个文本文件中,
这是我的代码:
string pattern_01010101 = "";
for (int i = 0; i < 10; i++)
{
pattern_01010101 += "0,1,0,1,0,1,0,1,";
}
System.IO.File.WriteAllText(@"C:\BField_pattern_01010101.txt", pattern_01010101);
结果:
现在,如果我将循环值更改为“20”,
string pattern_01010101 = "";
for (int i = 0; i < 20; i++)
{
pattern_01010101 += "0,1,0,1,0,1,0,1,";
}
System.IO.File.WriteAllText(@"C:\BField_pattern_01010101.txt", pattern_01010101);
结果:
我得到了这个有趣的小矩形框,
有人可以建议我,我在这里做错了什么吗?
非常感谢您的宝贵时间..:)
最佳答案
我怀疑 File.WriteAllText
方法使用的默认 Encoding
有问题。
尝试明确传递您需要的编码,效果很好。例如 Encoding.UTF8
。
File.WriteAllText(@"BField_pattern_01010101.txt", pattern_01010101, Encoding.UTF8);
我调查过 WriteAllText
也默认使用“UTF8Encoding”。但唯一的区别是在构造函数中传递的参数。 Encoding.UTF8 使用 new UTF8Encoding(true, false);
而 WriteAllText 方法使用 new UTF8Encoding(false, true);
如评论中所述 BOM是造成麻烦的人,谢谢@BjörnRoberg。 “UTF8Encoding 构造函数”的第一个参数定义是否发出 BOM。
关于c# - 如何生成重复位模式(字符串)并导出到文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20046309/