2012-12-25 14 views
-1

我的代碼基本上是這樣的:VB.NET流寫入UTF-8不是ANSI

Dim writer As New System.IO.StreamWriter("C:\file.exe") 
writer.Write(Chr(CInt("&H80"))) 
writer.Close() 

我正在寫一個可執行所以UTF-8是不是爲我工作很好。當我寫& H80(80)時,它給我 (E2 82 AC),它是'€'的UTF-8表示。我試過所有的東西,有沒有可以用ANSI寫的方法?我該怎麼辦?

+2

「二元」是你在找什麼。 – RBarryYoung

+0

您對'編寫可執行文件'有什麼意義。代碼嘗試在帶有exe擴展名的文件中寫入單個字節。這幾乎不可執行。你能解釋一下你的意圖嗎? – Steve

+0

@Steve你是認真的嗎?您是否願意發佈2KB的十六進制數據來證明它是一個完整的可執行文件?我發佈的內容就是一個例子......無論如何,我解決了我的問題,感謝您的幫助! –

回答

1

您在混淆文本和二進制數據:Chr返回的數據類型StringChar固有地與編碼鏈接,並且僅用於文本。

要處理二進制數據,請使用Byte數組。

類似地,StreamWriter類用於將文本寫入罰款,而不是二進制數據。要寫入二進制數據,請使用BinaryWriter類。

+0

沒錯,但問題不是很清楚。如何可能的文件的可執行文件的命名是超出我的。 – Steve