C 的二進位制檔案操作及漢字編碼轉換

2021-04-09 09:36:26 字數 2524 閱讀 6281

c#

的二進位制檔案操作及漢字編碼轉換 1

.數值應儲存在二進位制檔案

首先列舉文字、二進位制檔案的操作(讀寫)方法: 方式

1: //

/讀取/拷貝

/刪除

using

system;

using system.io;

class test }

// 讀取檔案

using (streamreader sr = file.opentext(path)) }//

刪除/

拷貝try

catch (exception e)

", e.tostring());}}

}方式2:

//流檔案(二進位制)操作

private const string name = "test.data";

public static void main(string args)

w.close();

fs.close();

在將一系列二進位制數如方式

1寫入到

file.txt(

二進位制)

檔案後,開啟

file.txt

後顯示的資料二進位制數有些錯誤,有些正確。(與存入的不一樣)

向檔案中寫入的

預設(也可以設定)

都是使用

utf-8

編碼。開啟

file.txt

是也是預設

utf-8

編碼。

若將其如方式

2存入

二進位制檔案,則顯示的資料一致。若將二進位制數(整數)儲存為文字檔案出錯。二進位制檔案是直接寫入檔案的(磁碟)沒有經過編碼和讀取時的解碼。

2.漢字編碼轉換

相關:

unicode

是為了處理包括中文,日文等字元而提出的一種通用的字符集。最初的unicode為雙位元組字符集,即16位編碼,能夠包括65,536個字元。但這樣的容量並不能滿足所有需要,因此,現在的unicode已經擴充套件到4個位元組,能夠容納1,112,064 個字元,而這些在16位之後的擴充套件背稱為增補字元。

utf-32

、utf-16

和utf-8

是unicode

標準的編碼字符集的字元編碼方案。

utf-8

使用一至四個位元組的序列對編碼

unicode

**點進行編碼

utf-8

使用一至四個位元組的序列對編碼 unicode **點進行編碼。u+0000 至 u+007f 使用乙個位元組編碼,u+0080 至 u+07ff 使用兩個位元組,u+0800 至 u+ffff 使用三個位元組,而 u+10000 至 u+10ffff 使用四個位元組。utf-8 設計原理為:位元組值 0x00 至 0x7f 始終表示**點 u+0000 至 u+007f(basic latin 字元子集,它對應 ascii 字符集)。這些位元組值永遠不會表示其他**點,這一特性使 utf-8 可以很方便地在軟體中將特殊的含義賦予某些 ascii 字元。

gb2312(2023年)

一共收錄了

7445

個字元,包括

6763

個漢字和

682個其它符號。漢字區的內碼範圍高位元組從

b0-f7

,低位元組從

a1-fe

,占用的碼位是

72*94=6768

。其中有

5個空位是

d7fa-d7fe

。當然也可以表示數字和字元(乙個位元組,與

ascii

表示相同)。

要讀取乙個以

gb2312

編碼的包含漢字、數字、字母的二進位制檔案。

string strname =encoding.getencoding("gb2312").getstring(name,0,i) ;

// name

是讀取的二進位制陣列。

這樣就能將二進位制陣列轉換為

漢字、數字或字母

同樣:也可以將包含漢字、數字、字母的字串轉換為

二進位制陣列儲存到

二進位制檔案。

string unicodestring =   "

備用43e";

byte encodedbytes = encoding.getencoding("gb2312").getbytes(unicodestring);

當然也可以進行二進位制陣列與unicode,utf-8等編碼方式的轉換

byte encodedbytes = utf8.getbytes(unicodestring);

string decodedstring = utf8.getstring(encodedbytes);

unicodeencoding unicode = new unicodeencoding();

byte encodedbytes = unicode.getbytes(unicodestring);

string decodedstring = unicode.getstring(encodedbytes);

C 的二進位制檔案操作

1 數值應儲存在二進位制檔案 首先列舉文字 二進位制檔案的操作 讀寫 方法 方式 1 讀取 拷貝 刪除 using system using system.io class test 讀取檔案 using streamreader sr file.opentext path 刪除 拷貝 try ca...

二進位制檔案操作

無關資料區 jpg資料區 無關資料區 jpg資料區 無關資料區 jpg資料區 現想把這些jpg資料從該檔案中讀出來,生成乙個個單獨的檔案,該如何做呢?幫你寫了個程式,測試了只含有乙個資訊的檔案 呼叫 void test fp.close 思路是,先得到ff的值,然後再判斷下一位是否是0xd8,但這裡...

二進位制檔案操作

無關資料區 jpg資料區 無關資料區 jpg資料區 無關資料區 jpg資料區 現想把這些jpg資料從該檔案中讀出來,生成乙個個單獨的檔案,該如何做呢?幫你寫了個程式,測試了只含有乙個資訊的檔案 呼叫 void test fp.close 思 路是,先得到ff的值,然後再判斷下一位是否是0xd8,但這...