Skip to content
This repository has been archived by the owner on Sep 4, 2022. It is now read-only.

Character Sets

Gustav Dersjö edited this page Dec 17, 2020 · 3 revisions

Character Sets

A short overview of character sets, intended to document the characters provided, what not to print, etc.

Code Page 437 / IBM437 / CP437

Despite Unicode becoming increasingly common, Code Page 437 is by far the most common charset for BBSes. A character from IBM437 is represented as a single byte.

Quick facts

  • Aliases: IBM437, CP437, 437, OEM-US, OEM 437, PC-8, DOS Latin US

Tables

                            Code Page 437
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│   │_0 │_1 │_2 │_3 │_4 │_5 │_6 │_7 │_8 │_9 │_A │_B │_C │_D │_E │_F │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 0_│NUL│ ☺ │ ☻ │ ♥ │ ♦ │ ♣ │ ♠ │ • │ ◘ │ ○ │ ◙ │ ♂ │ ♀ │ ♫ │ ♫ │ ☼ │
│   │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │10 │11 │12 │13 │14 │15 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 1_│ ► │ ◄ │ ↕ │ ‼ │ ¶ │ § │ ▬ │ ↨ │ ↑ │ ↓ │ → │ ← │ ∟ │ ↔ │ ▲ │ ▼ │
│   │16 │17 │18 │19 │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │30 │31 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 2_│SP │ ! │ " │ # │ $ │ % │ & │ ' │ ( │ ) │ * │ + │ , │ - │ . │ / │
│   │32 │33 │34 │35 │36 │37 │38 │39 │40 │41 │42 │43 │44 │45 │46 │47 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 3_│ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ : │ ; │ < │ = │ > │ ? │
│   │48 │49 │50 │51 │52 │53 │54 │55 │56 │57 │58 │59 │60 │61 │62 │63 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 4_│ @ │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K │ L │ M │ N │ O │
│   │64 │65 │66 │67 │68 │69 │70 │71 │72 │73 │74 │75 │76 │77 │78 │79 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 5_│ P │ Q │ R │ S │ T │ U │ V │ W │ X │ Y │ Z │ [ │ \ │ ] │ ^ │ _ │
│   │80 │81 │82 │83 │84 │85 │86 │87 │88 │89 │90 │91 │92 │93 │94 │95 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 6_│ ` │ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o │
│   │96 │97 │98 │99 │100│101│102│103│104│105│106│107│108│109│110│111│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 7_│ p │ q │ r │ s │ t │ u │ v │ w │ x │ y │ z │ { │ | │ } │ ~ │ ⌂ │
│   │112│113│114│115│116│117│118│119│120│121│122│123│124│125│126│127│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 8_│ Ç │ ü │ é │ â │ ä │ à │ å │ ç │ ê │ ë │ è │ ï │ î │ ì │ Ä │ Å │
│   │128│129│130│131│132│133│134│135│136│137│138│139│140│141│142│143│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ 9_│ É │ æ │ Æ │ ô │ ö │ ò │ û │ ù │ ÿ │ Ö │ Ü │ ¢ │ £ │ ¥ │ ₧ │ ƒ │
│   │144│145│146│147│148│149│150│151│152│153│154│155│156│157│158│159│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ A_│ á │ í │ ó │ ú │ ñ │ Ñ │ ª │ º │ ¿ │ ⌐ │ ¬ │ ½ │ ¼ │ ¡ │ « │ » │
│   │160│161│162│163│164│165│166│167│168│169│170│171│172│173│174│175│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ B_│ ░ │ ▒ │ ▓ │ │ │ ┤ │ ╡ │ ╢ │ ╖ │ ╕ │ ╣ │ ║ │ ╗ │ ╝ │ ╜ │ ╛ │ ┐ │
│   │176│177│178│179│180│181│182│183│184│185│186│187│188│189│190│191│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ C_│ └ │ ┴ │ ┬ │ ├ │ ─ │ ┼ │ ╞ │ ╟ │ ╚ │ ╔ │ ╩ │ ╦ │ ╠ │ ═ │ ╬ │ ╧ │
│   │192│193│194│195│196│197│198│199│200│201│202│203│204│205│206│207│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ D_│ ╨ │ ╤ │ ╥ │ ╙ │ ╘ │ ╒ │ ╓ │ ╫ │ ╪ │ ┘ │ ┌ │ █ │ ▄ │ ▌ │ ▐ │ ▀ │
│   │208│209│210│211│212│213│214│215│216│217│218│219│220│221│222│223│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ E_│ α │ ß │ Γ │ π │ Σ │ σ │ µ │ τ │ Φ │ Θ │ Ω │ δ │ ∞ │ φ │ ε │ ∩ │
│   │224│225│226│227│228│229│230│231│232│233│234│235│236│237│238│239│
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ F_│ ≡ │ ± │ ≥ │ ≤ │ ⌠ │ ⌡ │ ÷ │ ≈ │ ° │ ∙ │ · │ √ │ ⁿ │ ² │ ■ │NBS│
│   │240│241│242│243│244│245│246│247│248│249│250│251│252│253│254│255│
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
      Special characters (some software will not print these)
┌───┬───┬───────────────────────────────────────────────────────────┐
│DEC│CHR│Description                                                │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 0 │NUL│ NUL (Null)                                                │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 1 │ ☺ │ SOH (Start of Header)                                     │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 2 │ ☻ │ STX (Start of Text)                                       │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 3 │ ♥ │ ETX (End of Text)                                         │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 4 │ ♦ │ EOT (End of Transmission)                                 │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 5 │ ♣ │ ENQ (Enquiry)                                             │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 6 │ ♠ │ ACK (Acknowledge)                                         │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 7 │ • │ BEL (Bell)                                                │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 8 │ ◘ │ BS (BackSpace)                                            │
├───┼───┼───────────────────────────────────────────────────────────┤
│ 9 │ ○ │ HT (Horizontal Tabulation)                                │
├───┼───┼───────────────────────────────────────────────────────────┤
│10 │ ◙ │ LF (Line Feed)                                            │
├───┼───┼───────────────────────────────────────────────────────────┤
│11 │ ♂ │ VT (Vertical Tabulation)                                  │
├───┼───┼───────────────────────────────────────────────────────────┤
│12 │ ♀ │ FF (Form Feed)                                            │
├───┼───┼───────────────────────────────────────────────────────────┤
│13 │ ♫ │ CR (Carriage Return)                                      │
├───┼───┼───────────────────────────────────────────────────────────┤
│14 │ ♫ │ SO (Shift Out)                                            │
├───┼───┼───────────────────────────────────────────────────────────┤
│15 │ ☼ │ SI (Shift In)                                             │
├───┼───┼───────────────────────────────────────────────────────────┤
│16 │ ► │ DLE (Data Link Escape)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│17 │ ◄ │ DC1 (Device Control 1)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│18 │ ↕ │ DC2 (Device Control 2)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│19 │ ‼ │ DC3 (Device Control 3)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│20 │ ¶ │ DC4 (Device Control 4)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│21 │ § │ NAK (Negative Acknowledge)                                │
├───┼───┼───────────────────────────────────────────────────────────┤
│22 │ ▬ │ SYN (Synchronous Idle)                                    │
├───┼───┼───────────────────────────────────────────────────────────┤
│23 │ ↨ │ ETB (End of Transmission Block)                           │
├───┼───┼───────────────────────────────────────────────────────────┤
│24 │ ↑ │ CAN (Cancel)                                              │
├───┼───┼───────────────────────────────────────────────────────────┤
│25 │ ↓ │ EM (End of Medium)                                        │
├───┼───┼───────────────────────────────────────────────────────────┤
│26 │ → │ SUB (Substitute)                                          │
├───┼───┼───────────────────────────────────────────────────────────┤
│27 │ ← │ ESC (Escape)                                              │
├───┼───┼───────────────────────────────────────────────────────────┤
│28 │ ∟ │ FS (File Separator)                                       │
├───┼───┼───────────────────────────────────────────────────────────┤
│29 │ ↔ │ GS (Group Separator)                                      │
├───┼───┼───────────────────────────────────────────────────────────┤
│30 │ ▲ │ RS (Record Separator)                                     │
├───┼───┼───────────────────────────────────────────────────────────┤
│31 │ ▼ │ US (Unit Separator)                                       │
├───┼───┼───────────────────────────────────────────────────────────┤
│255│NBS│ NBSP (Non Breaking Space)                                 │
└───┴───┴───────────────────────────────────────────────────────────┘

Unprintable characters

It is worth noting that characters in the range of 0-31 are known as C1 Control Characters and are normally not printable due to serving other purposes, or they represent special actions rather than explicit characters. For example, VT it actually represents a Vertical Tab when printed, or the TAB key on a keyboard.

A hack that can be used to print these as literal characters (ex "♂" instead of $TAB when sending TAB), is to enable Doorway mode. Doorway mode has the effect of treating almost most characters literally, not inprepreting most of the C0 control characters.

Alternatively, if unicode is supported by the software, I recommend using that instead since doorway mode is poorly documented and has various caveats associated with it.


Unicode

tbd.

Project Accela

Specifications

Terminal

Network protocol

Clone this wiki locally