C#:导出到文本文件时,项目符号会弄乱

C#:导出到文本文件时,项目符号会弄乱,c#,file,C#,File,我有一个问题-当我将数据导出到文本时,我的文本文件没有正确创建-项目符号被弄乱了。 我尝试使用实际的项目符号或字节项目符号;不行 你能告诉我我做错了什么吗 public void createFile() { String Body; String TAB = "\t"; String RETURN = "\r\n"; Byte[] buffer = new byte[] { (byte)149 }; string bullet = Encoding.G

我有一个问题-当我将数据导出到文本时,我的文本文件没有正确创建-项目符号被弄乱了。 我尝试使用实际的项目符号或字节项目符号;不行

你能告诉我我做错了什么吗

public void createFile()
{
    String Body;
    String TAB = "\t";
    String RETURN = "\r\n";

    Byte[] buffer = new byte[] { (byte)149 };
    string bullet = Encoding.GetEncoding(1252).GetString(buffer);

    Body = TAB + bullet + TAB + "TEXT1" + RETURN;
    Body = Body + "•" + TAB + "TEXT2" + RETURN;
    System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\fname.txt");
    file.WriteLine(Body);
    file.Close();
}
第2行是解决方案

Body = TAB + bullet + TAB + "TEXT1" + RETURN;
Body += TAB + "•" + TAB + "TEXT2" + RETURN;
System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\fname.txt");
file.WriteLine(Body);
file.Close();
第2行是解决方案

Body = TAB + bullet + TAB + "TEXT1" + RETURN;
Body += TAB + "•" + TAB + "TEXT2" + RETURN;
System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\fname.txt");
file.WriteLine(Body);
file.Close();

好的,我需要指定不同的编码:

        String correctString ="•";
        System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\file.txt", false, Encoding.GetEncoding(1250));
        ansiWriter.WriteLine(correctString);
        ansiWriter.Close();

好的,我需要指定不同的编码:

        String correctString ="•";
        System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\file.txt", false, Encoding.GetEncoding(1250));
        ansiWriter.WriteLine(correctString);
        ansiWriter.Close();

我刚刚测试了这个,它在文本文件中正确地添加了一个项目符号

    String correctString = "\u2022"; 
    System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\projects\file.txt", false, Encoding.GetEncoding(1250)); 
    ansiWriter.WriteLine(correctString); 
    ansiWriter.Close();             

我刚刚测试了这个,它在文本文件中正确地添加了一个项目符号

    String correctString = "\u2022"; 
    System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\projects\file.txt", false, Encoding.GetEncoding(1250)); 
    ansiWriter.WriteLine(correctString); 
    ansiWriter.Close();             


你是怎么读文件的?你是用UTF-8写出来的-任何人都在用UTF-8读吗?请定义“混乱”和“不工作”@TomBass:Notepad对我来说很好…@JonSkeet-所以它是。。。我的错误他没在读文件他在创建文件。我的答案之所以有效,是因为这个家伙拒绝使用“*”Bullet的Unicode表示法。你是如何读取该文件的?你是用UTF-8写出来的-任何人都在用UTF-8读吗?请定义“混乱”和“不工作”@TomBass:Notepad对我来说很好…@JonSkeet-所以它是。。。我的错误他没在读文件他在创建文件。我的答案之所以有效,是因为这个家伙拒绝使用“*”项目符号的Unicode表示法。这只是一个语法上的改变,不会改变任何东西。对不起,你是对的。我需要新眼镜。虽然我不确定这是否是问题所在,但到目前为止,只有Andrew知道。当我将“•”符号附加到文件中时,我得到了这个结果。我不确定为什么在分配body=Tab+bullet+Tab的第一个body中传递两个不同的东西。。。。在我发送给您的示例中,您应该使用“\u2022”无需硬编码我尝试过的项目符号,它对我有效。。声明一个常量项目符号,将其值赋给“\u2022”,而不是使用方法重载将值附加到StringBuiler中。我认为“查找可变与不可变”字符串更为简洁。因此,粘贴的文本看起来不是完整的代码块或在方法中,请将所有必要的代码粘贴到此处,相信我。。您的代码不是版权材料,因此我们正在努力帮助您。。输入方法名和所有声明的填充变量。很难判断Body是类型还是带有粘贴代码的变量。。谢谢这只是语法上的改变,什么都没有改变。对不起,你说得对。我需要新眼镜。虽然我不确定这是否是问题所在,但到目前为止,只有Andrew知道。当我将“•”符号附加到文件中时,我得到了这个结果。我不确定为什么在分配body=Tab+bullet+Tab的第一个body中传递两个不同的东西。。。。在我发送给您的示例中,您应该使用“\u2022”无需硬编码我尝试过的项目符号,它对我有效。。声明一个常量项目符号,将其值赋给“\u2022”,而不是使用方法重载将值附加到StringBuiler中。我认为“查找可变与不可变”字符串更为简洁。因此,粘贴的文本看起来不是完整的代码块或在方法中,请将所有必要的代码粘贴到此处,相信我。。您的代码不是版权材料,因此我们正在努力帮助您。。输入方法名和所有声明的填充变量。很难判断Body是类型还是带有粘贴代码的变量。。谢谢,谢谢,Append很好,但是-我有同样的问题-我的子弹是乱七八糟的-这是我在文件中添加“•”符号时得到的结果。这是什么意思。。您是硬编码符号还是使用unicode“\u2022”请输入您使用的确切代码。。我会在我这边试试看,看我是否看到/得到了相同的结果好的,谢谢,Append很好,但仍然-我有同样的问题-我的子弹是乱七八糟的-这就是我在文件中添加“•”符号时得到的结果。你是什么意思,这就是你得到的。。您是硬编码符号还是使用unicode“\u2022”请输入您使用的确切代码。。我将在我这方面尝试一下,看看我是否看到/得到了相同的结果OK只需声明一个常量字符串const string correctString=“\u2022”;请尝试查看此链接,您可以在其中使用Convert。这里还有另一个链接,您也可以使用它,只需声明一个const string const string correctString=“\u2022”;尝试查看此链接,您可以在其中使用Convert.To方法。这里是您也可以使用的另一个链接