2010-06-11 59 views
6

如何修改以下Vb.Net代碼以將str寫入Unicode文件中?如何在Vb.Net中使用Unicode編寫文件

在寫入文件之前,是否需要將str轉換爲Unicode

Using sw As StreamWriter = New StreamWriter(fname) 
    sw.Write(str) 
    sw.Close() 
End Using 

回答

8

使用overriden constructor指定編碼

Using sw As StreamWriter = New StreamWriter(fname, true, System.Text.Encoding.Unicode) 
    sw.Write(str) 
    sw.Close() 
End Using 

任意選取UTF8(8位)或Unicode(16位)字符集編碼按您的要求。

2

文檔說明StreamWriter默認使用UTF8編碼。

+2

+1雖然它是沒有BOM的UTF8,所以你可能沒有意識到! http://msdn.microsoft.com/en-us/library/fysy0a4b.aspx – MarkJ 2010-06-12 18:02:30

0

下面的代碼明確指示保存爲不含BOM的UTF-8。

Dim utf8WithoutBom As New System.Text.UTF8Encoding(False) 
Dim orfWriter As System.IO.StreamWriter = New System.IO.StreamWriter(fileName, append, utf8WithoutBom) 
orfWriter.Write(saveString) 
orfWriter.Close() 

有關完整文檔,請參閱www.ezVB.net

+1

你目前的答案都鏈接到同一個網站。如果你是這個網站的附屬,你應該在你的回答中說明它。 – 2013-11-28 14:47:51

+0

感謝您通知我這件事。是的,我隸屬於ezVB.net。 – user3032129 2013-11-28 15:00:59