0

好吧,我正在使用所有这些代码:

// StreamWriter file = new StreamWriter(AppSettings.Instance.Dpath + "\\notaventa.txt");

// StreamWriter file = new StreamWriter(AppSettings.Instance.Dpath + "\\notaventa.txt", false, System.Text.Encoding.GetEncoding(1252));
' Dim objEscritor = New StreamWriter("C:\temp\salida_encoding.txt", True, System.Text.Encoding.Default)
// StreamWriter file = new StreamWriter(AppSettings.Instance.Dpath + "\\notaventa.txt", true, System.Text.Encoding.ASCII);

但没有一个适用于打印

坎西翁

每个人都打印

坎昆

我该如何解决?我在用

紧凑型框架 3.5

用于手持设备

4

2 回答 2

2

您可以通过指定Encoding.ASCII. UTF-8 通常是一个不错的选择,尽管它当然取决于要读取文件的内容。基本上 ASCII 没有任何重音字符。它停在 U+007E。

不过我希望Encoding.GetEncoding(1252)能工作,因为Windows 1252包含字符“ó”。当您未指定编码时与默认值相同,因为那将使用 UTF-8。您确定您的字符串包含正确的数据吗?你也用什么来读取文件?

于 2012-05-22T18:45:59.707 回答
1

ASCII 不包括对ó字符的支持。除非您有令人信服的理由,否则您应该始终使用 Unicode:

System.IO.StreamWriter file = new System.IO.StreamWriter(
    Path.Combine(AppSettings.Instance.Dpath, "notaventa.txt"), true, 
    System.Text.Encoding.UTF8);

与您的问题无关:您应该使用Path.Combine(而不是显式字符串连接)来构建文件路径。它将为您省去确定是否包括前导/尾随的麻烦\

于 2012-05-22T18:51:59.323 回答