c# - 如何生成重复位模式(字符串)并导出到文本文件?

标签 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);

结果:

enter image description here


现在,如果我将循环值更改为“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);

结果:

我得到了这个有趣的小矩形框,

enter image description here

有人可以建议我,我在这里做错了什么吗?

非常感谢您的宝贵时间..:)

最佳答案

我怀疑 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/

相关文章:

c# - 使用值编码 C# 的遗传算法初始种子多样性

Python用*替换字符串中的所有大写字符

c - 删除一行文本文件

c# - 在客户端保存文本文件而无需任何时间请求许可

python - 如何在Python中使用正则表达式查找和计算文本文件中的每一行?

c# - 如何使用 1 个计时器入队并使用另一个计时器出队

C# Topshelf超时异常

c# - Web API 将输入转换为随机 int

c++ - 在 C++ 中使用带有 <string> 的 vector Push_back 时出现错误

java - 根据单词中的位置替换字符串中的字母