NTFS General Information
> NTFS Basics > exFAT Overview > Up-case Table

Up-case Table

Up-case table contains data used forconversion from lower-case to upper-case characters. File Name Directory Entry uses Unicode characters and preserves case when storing file name.

exFAT itself is case insensitive, so it needs to compare file names converted to the upper-case during search operations. Normally Up-case table is located right after Bitmap Allocation table but can be placed anywhere is the cluster heap. It has a corresponding primary critical directory entry in the root directory.

Up-case Table is an array of Unicode characters, an index of which represents the Unicode characters to be up-cased and the value is the target up-cased character. The Up-case Table shall contain at least 128 mandatory Unicode mappings.

If implementation supports only mandatory 128 characters it may ignore the rest of Up-case Table. When up-casing file names such implementation shall up-case only characters from the mandatory 128 characters set and leave other characters intact. When comparing file names which are different only by characters in non-mandatory set, those file names shall be treated as equal.

Index

Value

Comments

0x0000

0x0000

 

0x0001

0x0001

 

0x0002

0x0002

 

...

...

...

0x0041

0x0041

'A' is mapped into itself (identity mapping)

0x0042

0x0042

'B' is mapped into itself

...

...

...

0x061

0x041

'a' is mapped into 'A' (non-identity mapping)

0x062

0x042

'b' is mapped into 'B'

...

...

...

Up-case Table can be written in compressed format where the series of identity mappings is represented with 0xFFFF followed by the number of identity mappings.

 

Mandatory First 128 Up-case Table Entries

Index

Table Entries

0000 0000    0001    0002    0003    0004    0005    0006    0007    0008    0009    000A    000B    000C    000D    000E    000F
0010 0010    0011    0012    0013    0014    0015    0016    0017    0018    0019    001A    001B    001C    001D    001E    001F
0020 0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   002A   002B   002C   002D   002E   002F
0030 0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   003A   003B   003C   003D   003E   003F
0040 0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   004A   004B   004C   004D   004E   004F
0050 0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   005A   005B   005C   005D   005E   005F
0060 0060   0041   0042   0043   0044   0045   0046   0047   0048   0049   004A   004B   004C   004D   004E   004F
0070 0050    0051   0052   0053   0054   0055   0056   0057   0058   0059   005A   007B   007C   007D   007E   007F

Non-identity mappings are highlighted.

 

Mandatory First 128 Up-case Table Entries in compressed format

Index

Table Entries

0000 FFFF  0061   0041   0042   0043   0044   0045   0046   0047   0048   0049   004A   004B   004C   004D   004E   004F
0010 0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   005A   FFFF  0005

The first highlighted group describes that first 0x0061 characters (0x0000-0x0060) have identity mappings.
The next character after it (0x0061) maps to 0x0041 etc. until the next compressed group is encountered.

 

previous | contents | next