在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轉換。這個問題說大不大,說小也不小。我完全可以增加乙個選項,在開...