自動識別文字的編碼以及讀取所有文字 VB2005

2021-09-22 09:08:03 字數 1206 閱讀 1227

在vb2005中,讀取文字檔案中的文字可以採用的方法是system.io.file.readalltext,這個函式有兩個引數,乙個是檔案的檔名(包含路徑);乙個是文字的編碼,如果省略,採用系統預設的編碼。可是,一般的文字編碼有ansi、unicode、utf8等。如果編碼的格式選擇不對,則讀出來是一段亂碼。

筆者依照網上的資料,編寫乙個函式,能自動根據判別文字的編碼格式,首先是將文字檔案的資料讀到位元組陣列中,再判別文字的編碼格式,最後將位元組陣列轉化為文字。

依據位元組流,前三個位元組標識著這個文字的編碼方式。那麼依據這三個位元組的值,用不同的編碼來解析這個位元組流。這是下面這段**的核心內容。

**格式修正於2023年1月5日

public

shared

function returnencoding(

byval tb() 

asbyte) 

as system.text.encoding

dim tb1 

asbyte, tb2 

asbyte, tb3 

asbyte, tb4 

asbyte

if tb.length < 2 

then

return

nothing

tb1 = tb(0)

tb2 = tb(1)

if tb.length >= 3 

then tb3 = tb(2)

if tb.length >= 4 

then tb4 = tb(3)

if (tb1 = &hfe 

andalso tb2 = &hff) 

then

return system.text.encoding.bigendianunicode

if (tb1 = &hff 

andalso tb2 = &hfe 

andalso tb3 <> &hff) 

then

return system.text.encoding.unicode

if (tb1 = &hef 

andalso tb2 = &hbb 

andalso tb3 = &hbf) 

then

return system.text.encoding.utf8

return system.text.encoding.default

endfunction

自動識別文字的編碼以及讀取所有文字 VB2005

在vb2005中,讀取文字檔案中的文字可以採用的方法是system.io.file.readalltext,這個函式有兩個引數,乙個是檔案的檔名 包含路徑 乙個是文字的編碼,如果省略,採用系統預設的編碼。可是,一般的文字編碼有ansi unicode utf8等。如果編碼的格式選擇不對,則讀出來是一...

vim自動識別檔案編碼

1.檢視檔案編碼的方法 file filename 在vim中可以直接檢視檔案編碼方式 set fileencoding 即可顯示檔案編碼方式 2.設定vim使其自動識別檔案編碼 set encoding utf 8 fileencodings ucs bom,utf 8,cp936 這樣,就可以讓...

編碼自動識別工具 uchardet

亂碼 beyond the void 1 設計開發 555 views 最近在給opencc做圖形介面,遇到乙個問題 opencc預設只能轉換utf 8文字,其他編碼像gb18030,big5只能轉換成utf 8以後,才能用opencc轉換。這個問題說大不大,說小也不小。我完全可以增加乙個選項,在開...