Title: Unicode — Terminal Feature Category | Terminfo.dev
Open Graph Title: Unicode — Terminal Feature Category
Description: Modern terminals are UTF-8 terminals: applications write UTF-8 bytes, the terminal decodes them into Unicode code points, and the screen grid assigns each displayed grapheme a cell width. Encoding is now the easy part; width is where terminals disagree. East Asian ambiguous-width characters, emoji, combining marks, variation selectors, zero-width joiners, wide-character wrapping, and tab stops with mixed-width text all affect cursor alignment. Correct Unicode handling is essential for TUI applications because a one-cell disagreement between the app and terminal shifts every column to the right. The wcwidth() function predates emoji, terminals track different Unicode versions, and there is no single standard for grapheme-cluster width.
Open Graph Description: Modern terminals are UTF-8 terminals: applications write UTF-8 bytes, the terminal decodes them into Unicode code points, and the screen grid assigns each displayed grapheme a cell width. Encoding is now the easy part; width is where terminals disagree. East Asian ambiguous-width characters, emoji, combining marks, variation selectors, zero-width joiners, wide-character wrapping, and tab stops with mixed-width text all affect cursor alignment. Correct Unicode handling is essential for TUI applications because a one-cell disagreement between the app and terminal shifts every column to the right. The wcwidth() function predates emoji, terminals track different Unicode versions, and there is no single standard for grapheme-cluster width.
Opengraph URL: https://terminfo.dev/unicode
X: @AskTerminfo
Generator: VitePress v1.6.4
Domain: terminfo.dev
{"@context":"https://schema.org","@type":"WebSite","name":"Terminfo.dev","url":"https://terminfo.dev","description":"Can your terminal do that? Feature support tables for terminal emulators."}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://terminfo.dev/"},{"@type":"ListItem","position":2,"name":"Unicode — Terminal Feature Category","item":"https://terminfo.dev/unicode"}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Unicode — Terminal Feature Category","description":"Modern terminals are UTF-8 terminals: applications write UTF-8 bytes, the terminal decodes them into Unicode code points, and the screen grid assigns each displayed grapheme a cell width. Encoding is now the easy part; width is where terminals disagree. East Asian ambiguous-width characters, emoji, combining marks, variation selectors, zero-width joiners, wide-character wrapping, and tab stops with mixed-width text all affect cursor alignment. Correct Unicode handling is essential for TUI applications because a one-cell disagreement between the app and terminal shifts every column to the right. The wcwidth() function predates emoji, terminals track different Unicode versions, and there is no single standard for grapheme-cluster width.","url":"https://terminfo.dev/unicode","author":{"@type":"Person","name":"Bjørn Stabell","url":"https://beorn.codes"},"publisher":{"@type":"Organization","name":"Terminfo.dev","url":"https://terminfo.dev"}}
| og:type | website |
| og:site_name | Terminfo.dev |
| og:image | https://terminfo.dev/og-image.png |
| twitter:card | summary_large_image |
Links:
Viewport: width=device-width,initial-scale=1