繁体   English   中英

.net紧凑框架上的system.io.streamwriter

[英]system.io.streamwriter on .net compact framework accents

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

// 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

手持式

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

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

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

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

与您的问题无关:您应使用Path.Combine (而不是显式字符串串联)来构造文件路径。 这将使您省去确定是否包含前导/后缀\\的麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM