2010-06-11 69 views
6

Tôi nên sửa đổi mã Vb.Net sau đây như thế nào để viết str vào tệp trong unicode?Cách ghi vào một tệp bằng Unicode trong Vb.Net

Tôi có cần chuyển đổi str thành Unicode trước khi ghi vào tệp không?

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

Trả lời

8

Sử dụng overriden constructor để xác định mã hóa

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

Chọn một trong hai UTF8 (8bit) hoặc Unicode (16 bit) mã hóa ký tự thiết lập theo yêu cầu của bạn.

2

Tài liệu cho biết StreamWriter sử dụng mã hóa UTF8 theo mặc định.

+2

+1 Mặc dù UTF8 không có BOM, vì vậy bạn có thể không nhận ra !. http://msdn.microsoft.com/en-us/library/fysy0a4b.aspx – MarkJ

0

Mã dưới đây hướng dẫn rõ ràng để lưu dưới dạng UTF-8 không có BOM.

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() 

Để biết tài liệu đầy đủ, hãy xem www.ezVB.net.

+1

Cả hai câu trả lời hiện tại của bạn đều liên kết đến cùng một trang. Nếu bạn được liên kết với trang web này, bạn nên nêu rõ trong câu trả lời của bạn. –

+0

Cảm ơn bạn đã thông báo cho tôi về điều này. Có, tôi liên kết với ezVB.net. – user3032129

Các vấn đề liên quan