検索したら、いろいろ有用な先人たちの情報があります。
- I♥TAIWAN - 日本小雪さんのブログ、最初ここからスタートして多分いちばん間違いなし。
- 在日台灣太太連絡簿 - 最低限の必要単語が載っている。
- 梅と桜 ―日本台湾年軽人的事情― いろんなこと載っている…必要な内容を探しだすのに時間がかかるかも(笑)
- 日本男と台灣娘の結婚生活✿ - 日文戶籍謄本翻譯(台湾戸籍謄本訳文) -必要最低限のEXCELフォームはここからもらえるよ
んで、一応訳してみました。
これで大丈夫でしょう(自称)
位元組偏移 | 長度 | 描述 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 8 | DOS檔名(附加空格) 第一個位元組可以是下面的特殊數值:
| |||||||||||||||||||||||||||
0x08 | 3 | DOS副檔名(空格補齊) | |||||||||||||||||||||||||||
0x0b | 1 | 檔案內容 第一個位元組可以是下面一些特殊值:
內容值0x0F用來表示長檔名條目。 | |||||||||||||||||||||||||||
0x0c | 1 | 保留,NT使用(參見後面) | |||||||||||||||||||||||||||
0x0d | 1 | 建立時間,最小時間解析度:10ms單位,數值從0到199。 | |||||||||||||||||||||||||||
0x0e | 2 | 建立時間。小時、分鐘和秒根據後面的圖示描述進行編碼:
| |||||||||||||||||||||||||||
0x10 | 2 | 建立日期。年、月和日根據後面的圖示編碼:
| |||||||||||||||||||||||||||
0x12 | 2 | 最近存取時間;參見偏移0x0e處的描述。 | |||||||||||||||||||||||||||
0x14 | 2 | FAT12和FAT16中的EA-Index(OS/2和NT使用),FAT32中第一個叢集的兩個高位元組 | |||||||||||||||||||||||||||
0x16 | 2 | 最後更改時間;參見偏移0x0e處的描述。 | |||||||||||||||||||||||||||
0x18 | 2 | 最後更改日期; 參見偏移0x10處的描述。 | |||||||||||||||||||||||||||
0x1a | 2 | FAT12和FAT16中的第一個叢集。FAT32中第一個叢集的兩個低位元組。 | |||||||||||||||||||||||||||
0x1c | 4 | 檔案大小 |
位元組偏移 | 長度 | 描述 |
---|---|---|
0x00 | 1 | 序列號 |
0x01 | 10 | 名稱字元(5個UTF-16字元) |
0x0b | 1 | 內容(永遠是0x0F) |
0x0c | 1 | 保留(永遠是0x00) |
0x0d | 1 | DOS檔名校驗和 |
0x0e | 12 | 名稱字元(6個UTF-16字元) |
0x1a | 2 | 第一個叢集(永遠是0x0000) |
0x1c | 4 | 名稱字元(兩個UTF-16字元) |
entry content | 說明 |
---|---|
0x000 | 空白 |
0x001 | 內部用途保留。由於通常資料都是由第二磁簇開始的,應該是不會用到1號磁簇。 |
0x002-0xFEF | 下一個磁簇的位置 |
0xFF7 | 損壞磁簇 |
0xFF8-0xFFF | 檔案結束 |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F0 | FF | FF | 03 | 40 | 00 | 05 | 60 | 00 | 07 | 80 | 00 | 09 | A0 | 00 | 0B |
Sector Offset 磁區偏移 |
BPB Offser |
length 長度 |
說明 |
---|---|---|---|
0x000 | 3 | Jump instruction. 跳轉指令(跳過開頭一段區域) |
|
0x003 | 8 | OEM Name (padded with spaces
0x20). OEM名稱(空白0x20補齊) |
|
0x00B | 0x00 | 2 | Bytes per logical sector 磁區位元組數 |
0x00D | 0x02 | 1 | Logical sectors per cluster.
每叢集磁區數 |
0x00E | 0x03 | 2 | Reserved logical sectors 保留磁區數(包括啟動磁區) |
0x010 | 0x05 | 1 | Number of File Allocation
Tables. 檔案分配表數目 |
0x011 | 0x06 | 2 | Maximum number of FAT12 or FAT16
root directory entries. 根目錄磁區最大登錄數 |
0x013 | 0x08 | 2 | Total logical sectors. 總磁區數. |
0x015 | 0x0A | 1 | Media Descriptor 介質描述。常用0xF0: 2HD144, 0xF9: 2DD720, 0xFB: 2DD640 |
0x016 | 0x0B | 2 | Logical sectors per File
Allocation Table for FAT12/FAT16. 每個檔案分配表的邏輯磁區數 |
0x018 | 0x0D | 2 | Physical sectors per track for
disks with INT 13h CHS geometry. 磁軌磁區數 |
0x01A | 0x0F | 2 | Number of heads
for disks with INT 13h CHS geometry 磁頭數 |
0x01C | 0x11 | 4 | Count of hidden sectors
preceding the partition that contains this FAT volume. 隱藏磁區數 |
0x020 | 0x15 | 4 | Total logical
sectors(FAT16) 總磁區數。當大於65535時(0xffff)。FAT12下是通常不會用到… |
0x026 | 0x1B | 1 | Extended boot
signature(0x29) 延伸啟動磁區記號。通常為0x29 |
0x027 | 0x1C | 4 | Volume ID(serial number) 磁碟ID。"xxxx-xxxx" 通常是系統時間與系統日期的綜合。至於位元組內容可以參考根目錄磁區的檔案時間與日期 |
0x02B | 0x20 | 11 | Partition Volume Label, padded
with blanks(0x20). 分割區標籤。 |
0x036 | 0x2B | 8 | File system type, padded with
blanks(0x20). 檔案系統格式。e.g., "FAT12 ","FAT16 ", "FAT " |
0x1FE | 2 | Boot sector signature (0x55
0xAA) 磁區結束符 |
Media Descriptor 界質描述 |
0xF0 | 0xF9 | 0xFA | 0xFB | 0xFC | 0xFD | 0xFE | 0xFF | |
---|---|---|---|---|---|---|---|---|---|
DISC Size 物理磁碟尺寸 |
3.5" | 5.25" | 3.5" | 3.5" 5.25" |
3.5" 5.25" |
5.25" | 5.25" | 5.25" | 5.25" |
Density 磁碟密度 |
HD | HD | DD | DD | DD | DD | DD | ||
Modulation 調變 |
MFM | MFM | MFM | MFM | MFM | MFM | MFM | MFM | MFM |
Formatted Capacity(KiB) 格式化磁碟容量 |
1440 | 1200 | 720 | 320 | 640 | 180 | 360 | 160 | 320 |
Cylinders(CHS) 磁柱數 |
80 | 80 | 80 | 80 | 80 | 40 | 40 | 40 | 40 |
Physical sertors/track 磁軌磁區數[0x18] |
18 | 15 | 9 | 8 | 8 | 9 | 9 | 8 | 8 |
Number of heads 磁頭數[0x1A] |
2 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 2 |
Bytes/Logical sector 邏輯磁區位元組數[0x0B] |
512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 |
Logical sectors/cluster 每個簇的邏輯磁區數[0x0D] |
1 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 |
Reserved Logical Sectors 保留磁區數[0x0E] |
1 | 1 | 1(2) | 1 | 1 | 1 | 1 | 1 | 1 |
Number of FATs FAT數[0x10] |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
Root directory entries 根目錄條目數[0x11] |
224 | 224 | 112 | 64 | 112 | 64 | 112 | 64 | 112 |
Total logical sectors 總磁區數 |
2880 | 2400 | 1440 | 640 | 1280 | 360 | 720 | 320 | 640 |
logical sectors/FAT FAT磁區數 |
9 | 7 | 3 | 2 | 2 | 2 | 2 | 1 | 1 |
Hidden sectors 隱藏磁區數 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
名稱 | 英文 | 磁區大小(sector數) |
---|---|---|
啟動磁區 | Boot Sector | 保留sector大小。一般是512KB(1 sector) |
檔案分配表#1 | File Allocation Table #1 | FAT磁區大小 |
檔案分配表#2 | File Allocation Table #2 | FAT磁區大小 |
根目錄 | Directory table | (根目錄保存檔案上限*32)/(Sector Byte數) |
資料區 | Data Region | 剩餘磁區 |
string sTest = "TEST" byte[] bTest = Encoding.ASCII.GetBytes(sTest);
Char cTest = 'A' byte bTest = Convert.toByte(cTest);
byte ConvertToByte(BitArray bits) { if (bits.Count != 8) { throw new ArgumentException("bits"); } byte[] bytes = new byte[1]; bits.CopyTo(bytes, 0); return bytes[0]; }
string str = "hello world"; //文字列をcharの配列に変換する char[] charArray = str.ToCharArray(); //文字列を、1文字づつcharとして処理する foreach (char c in str) { Console.WriteLine( c ); } //文字列のn文字目をcharとして取得する int n = 5; char c = str[n];
char c = "あ"; string s = c.ToString();
byte[] bytesArray = xxx; // SJISのbyte配列をstringに変換 str = System.Text.Encoding.GetEncoding( 932 ).GetString( bytesArray ); // UTF-8のbyte配列をstringに変換 str = System.Text.Encoding.UTF8.GetString( bytesArray );
string str = "hello world"; byte[] bytesArray; // stringをSJISのbyte配列に変換 byte[] bytesArray = System.Text.Encoding.GetEncoding( 932 ).GetBytes( str ); // stringをUTF-8のbyte配列に変換 byte[] bytesArray = System.Text.Encoding.UTF8.GetBytes( str );
byte[] bytesArray = ...; char[] charArray = System.Text.Encoding.GetEncoding( 932 ).GetString( bytesArray ).ToCharArray();
char c = "あ"; byte b = Convert.ToByte( c );