Character sets can be divided into two parts, called a "G" set and a "C" set. A "G" set contains some specified set of graphic (i.e., printable) characters, while a "C" set contains a group of control characters. For example, the "G" set in the ASCII character set consists of the characters with ASCII numbers 33 through 126, while the "C" set is those characters with ASCII numbers 0 through 31. For historical reasons, the characters SPACE (number 32) and DELETE (number 127) are not considered to be in either the C set or the G set, but instead stand on their own. To describe a standard character set, either a G set or a C set or both must be specified. Through the use of techniques described in the standard ISO 2022, it is possible to have multiple G and/or C sets active at once. Many different G and C sets have been standardized, each intended for a particular type of use.
The ASN.1 GraphicString type includes graphic (i.e., printable) characters drawn from any standardized character set. In other words, characters from any standardized G set are allowed.
GraphicString and GeneralString have the same relationship to one another as do VisibleString and IA5String: the first in each pair allows only G set characters, while the second allows both G and C set characters. In VisibleString and IA5String, however, the underlying character set is defined to be ASCII-like. For GraphicString and GeneralString, although the default is an ASCII-like character set, the character set can be changed through the use of escape sequences to be any standardized character set.
Using GraphicString is no longer recommended. The UTF8String, BMPString, or UniversalString type should be used instead.
Letters ::= GraphicString
The GraphicString type can be constrained by a single value, by size constraints, and by permitted alphabet constraints.