San*_*VEE 9 c# string text-files
我正在尝试生成一个位模式(重复字符串)并导出到文本文件中,
这是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)
结果:

现在,如果我将循环值更改为" 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);
Run Code Online (Sandbox Code Playgroud)
结果:
我得到这个有趣的小矩形盒子,

有人可以建议我,我在这里做错了什么?
非常感谢你的时间.. :)
我怀疑有一些问题,默认Encoding的使用File.WriteAllText方法.
尝试传递您需要明确的编码,并且工作正常.例如Encoding.UTF8.
File.WriteAllText(@"BField_pattern_01010101.txt", pattern_01010101, Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)
我调查过,WriteAllText默认情况下也使用"UTF8Encoding".但唯一的区别是在contructor中传递的参数.Encoding.UTF8使用new UTF8Encoding(true, false);WriteAllText方法使用的位置new UTF8Encoding(false, true);
正如评论中所指出的,物料清单是导致问题的因素,感谢@BjörnRoberg."UTF8Encoding构造函数"的第一个参数定义是否发出BOM.