Manual Pages

Table of Contents


na_charmap - command for managing per-volume character maps


charmap [ volname [ mapspec ] ]


The charmap command can be used to manage a character map which is used to allow CIFS clients to access files with NFS names that would otherwise not be valid for CIFS. Without a mapping, in such a case the CIFS client will see and must use the 8.3 format name that ONTAP generates for these names.


charmap volname mapspec

This form of the command associates the mapspec with the named volume. The format of the mapspec is as follows:


Each "hh" represents a hexadecimal value. It does not have to be zero-padded, and upper- or lowercase hex "A"-"F" are accepted. The first value of each colon-separated pair is the hex value of the NFS byte to be translated, and the second value is the Unicode value to be substituted for CIFS use. See the "Examples" section below to see how this is done.

charmap volname ""

This command will remove any existing mapping from the named volume.

charmap [volname]

Without a mapspec, the existing character map for the named volume is displayed. If no volume is named, the character map, if any, for each volume is displayed.


charmap desvol 3e:ff76,3c:ff77,2a:ff78,3a:ff79

This command will map a set of characters (>, <, *, and :) into Japanese Unicode characters that are not normally used as normal characters in filenames. This mapping will apply to the volume named "desvol".


The NFS characters that can be remapped are restricted to those that are invalid for Windows: " (22 = double quote), * (2A = asterisk), : (3A = colon), < (3C = less than), > (3E = greater than), ? (3F = question mark), \ (5C = backslash), and (7C = pipe). Values from 01 to 1F can also be mapped.

It is important to note that the Unicode characters must not appear normally in existing filenames, because otherwise unwanted mappings would occur, resulting in loss of the ability to access mapped files. For example, if ":" were mapped to "-", but "-" appeared in files normally, a Windows client using the mapped share to access a file named "a-b" would have its request mapped to the NFS name "a:b", which is not the desired file.

Note also that only CIFS client accesses will have this mapping. The on-disk names are the same as they would be if an NFS client were creating/operating using the mapped file names. If the mapping is later changed, the UNIX names and DOS 8.3 names will not be affected.

If a volume is read-only, it is still possible to assign a charmap to it. However the value will not be persistent.


The characters of the NFS name are considered one byte at a time. that means that multi-byte character sets may have false substitutions. In general it is advisable to avoid multi-byte character sets in the names of files to be mapped.


Case sensitivity

Because the mapped Windows names turn into NFS names, the lookup of the names follows NFS semantics. That includes the fact that NFS lookups are case-sensitive. That means the applications accessing mapped shares must not rely on Windows caseinsensitive behavior. However the 8.3 name is available, and that is case-insensitive.

Partial or invalid mappings

After mapping a name to return to clients doing directory enumeration ("dir"), the resulting Unicode name is checked for Windows validity. If that name still has invalid characters in it, or if it is otherwise invalid for Windows (e.g. it ends in "." or blank) the 8.3 name is returned instead of the invalid name.

Table of Contents