2012-05-22 31 views
0

好吧,我使用所有這些代碼:system.io.streamwriter在.NET Compact Framework受口音

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

但對於打印沒有工作

canción

大家打印

canci?n

我該如何解決?我使用

緊湊框架3.5

的手helds

回答

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(而不是明確的字符串連接)構建文件路徑。這可以幫助您避免決定是否包含前導/尾隨\

+0

System.Text.Ecoding.UTF8沒有工作記住我正在起訴緊湊框架3.5 –

+0

.NET Compact Framework支持'UTF8' _is_;檢查[編碼屬性](http://msdn.microsoft.com/en-us/library/dxsf38kx%28v=vs.90%29)。 – Douglas

+0

好的,我會再次檢查,這是真的,也許因爲它不工作非常好 –

2

您可以通過指定修復它。 UTF-8通常是一個不錯的選擇,當然它取決於讀取的文件。基本上ASCII沒有任何重音字符;它停在U + 007E。

但我希望Encoding.GetEncoding(1252)能夠正常工作,因爲Windows 1252包含字符「ó」。如果不指定編碼,那麼同樣使用UTF-8。你確定你的字符串包含正確的數據嗎?你用什麼來這個文件呢?

相關問題