---
name: "wcswidth"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wcswidth/3tcl"
---

# wcswidth(3tcl)

Procedures to compute terminal width of strings

```

```

## NAME

textutil::wcswidth - Procedures to compute terminal width of strings

## SYNOPSIS

package require **Tcl 8.5 9**

package require **textutil::wcswidth ?35.3?**

**::textutil::wcswidth** *string*

**::textutil::wcswidth\_char** *char*

**::textutil::wcswidth\_type** *char*

```

```

## DESCRIPTION

The package **textutil::wcswidth** provides commands that determine character type and width when used in terminals, and the length of strings when printed in a terminal.

The data underlying the functionality of this package is provided by the Unicode database file *http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt*.

The complete set of procedures is described below.

- **::textutil::wcswidth** *string*

  Returns the number of character cells taken by the string when printed to the terminal. This takes double-wide characters from the various Asian and other scripts into account.

- **::textutil::wcswidth\_char** *char*

  Returns the number of character cells taken by the character when printed to the terminal.

  *Beware*: The character *char* is specified as Unicode codepoint.

- **::textutil::wcswidth\_type** *char*

  Returns the character type of the specified character. This a single character in the set of **A**, **F**, **H**, **N**, **Na**, and **W**, as specified per *http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt*

  *Beware*: The character *char* is specified as Unicode codepoint.

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *textutil* of the *Tcllib Trackers* \[http://core.tcl.tk/tcllib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of **diff -u**.

Note further that *attachments* are strongly preferred over inlined patches. Attachments can be made by going to the **Edit** form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## SEE ALSO

[regexp(3tcl)](/regexp/3tcl.md), [split(3tcl)](/split/3tcl.md), [string(3tcl)](/string/3tcl.md)

## KEYWORDS

character type, character width, double-wide character, prefix, regular expression, string

## CATEGORY

Text processing
