不同編碼的文字,是根據文字的前兩個位元組來定義其編碼格式的。定義如下:
ansi: 無格式定義;
unicode: 前兩個位元組為fffe;
unicode big endian: 前兩位元組為feff;
utf-8: 前兩位元組為efbb;
檔案的字符集在windows下有兩種,一種是ansi,一種unicode。
對於unicode,windows支援了它的三種編碼方式,一種是小尾編碼(unicode),一種是大尾編碼(bigendianunicode),一種是utf-8編碼。
我們可以從檔案的頭部來區分乙個檔案是屬於哪種編碼。當頭部開始的兩個位元組為 ff fe時,是unicode的小尾編碼;當頭部的兩個位元組為fe ff時,是unicode的大尾編碼;當頭部兩個位元組為ef bb時,是unicode的utf-8編碼;當它不為這些時,則是ansi編碼。
按照如上所說,我們可以通過讀取檔案頭的兩個位元組來判斷檔案的編碼格式,**如下(c#**):
程式中system.text.encoding.default是指作業系統的當前 ansi **頁的編碼。?
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public
system.text.encoding getfileencodetype(
string
filename)
else
if
(buffer[0]==0xfe && buffer[1]==0xff)
else
if
(buffer[0]==0xff && buffer[1]==0xfe)
else
}
else
}
判斷乙個文字檔案的編碼格式
檔案的字符集在windows下有兩種,一種是ansi,一種unicode。對於unicode,windows支援了它的三種編碼方式,一種是小尾編碼 unicode 一種是大尾編碼 bigendianunicode 一種是utf 8編碼。我們可以從檔案的頭部來區分乙個檔案是屬於哪種編碼。當頭部開始的兩...
判斷乙個文字檔案的編碼格式
檔案的字符集在windows下有兩種,一種是ansi,一種unicode。對於unicode,windows支援了它的三種編碼方式,一種是小尾編碼 unicode 一種是大尾編碼 bigendianunicode 一種是utf 8編碼。我們可以從檔案的頭部來區分乙個檔案是屬於哪種編碼。當頭部開始的兩...
如何判斷文字檔案的編碼格式?
這裡指的文字是用於windows系統中的擴充套件名為.txt的檔案。notepad 記事本 只支援四種格式 ansi unicode unicode big endian uft 8,在delphi中如何判斷與讀取這些不同格式的文字呢?首先,不同編碼的文字,是根據文字的前兩個位元組來定義其編碼格式的...