In ISO/IEC 646 (commonly known as ASCII) and related standards including ISO 8859 and Unicode, a graphic character, also known as printing character (or printable character), is any character intended to be written, printed, or otherwise displayed in a form that can be read by humans. In other words, it is any encoded character that is associated with one or more glyphs.
ISO/IEC 646
In ISO 646, graphic characters are contained in rows 2 through 7 of the code table. However, two of the characters in these rows, namely the space character SP at row 2 column 0 and the delete character DEL (also called the rubout character) at row 7 column 15, require special mention.
The space is considered to be both a graphic character and a control character in ISO 646.[1] It can be considered as a character with a visible form or, in contexts such as teleprinters, a control character that advances the print head without printing a character.
The delete character is strictly a control character, not a graphic character. This is true not only in ISO 646, but also in all related[clarification needed] standards including Unicode. However, many other character sets deviate from ISO 646, and as a result a graphic character might[a] occupy the position originally reserved for the delete character.[b]
Unicode
In Unicode, Graphic characters are those with General Category Letter, Mark, Number, Punctuation, Symbol or Zs=space. Other code points (General categories Control, Zl=line separator, Zp=paragraph separator) are Format, Control, Private Use, Surrogate, Noncharacter or Reserved (unassigned).[2]
Spacing and non-spacing characters
Most graphic characters are spacing characters, which means that each instance of a spacing character has to occupy some area in a graphic representation. For a teletype or a typewriter this implies moving of the carriage after typing of a character. In the context of text mode display, each spacing character occupies one rectangular character box of equal sizes. Or maybe two adjacent ones, for non-alphabetic characters of East Asian languages. If a text is rendered using proportional fonts, widths of character boxes are not equal, but are positive.
There exist also non-spacing graphic characters. Most of non-spacing characters are modifiers, also called combining characters in Unicode, such as diacritical marks. Although non-spacing graphic characters are uncommon in traditional code pages, there are many such in Unicode. A combining character has its distinct glyph, but it applies to a character box of another character, a spacing one. In some historical systems such as line printers this was implemented as overstrike.
Note that not all modifiers are non-spacing – there exists Spacing Modifier Letters Unicode block.
^This does not mean the delete character is absent; it just means 0x7F is overloaded, and outputting it will either print the graphical character or perform a deletion, depending on the routine used. For example in most BASIC implementations, using the PRINT command with 0x7F will delete, but using POKE will output the graphical character.