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

# unicode(3tcl)

Implementation of Unicode normalization

```

```

## NAME

unicode - Implementation of Unicode normalization

## SYNOPSIS

package require **Tcl 8.5 9**

package require **unicode 1.1.1**

**::unicode::fromstring** *string*

**::unicode::tostring** *uclist*

**::unicode::normalize** *form* *uclist*

**::unicode::normalizeS** *form* *string*

```

```

## DESCRIPTION

This is an implementation in Tcl of the Unicode normalization forms.

## COMMANDS

- **::unicode::fromstring** *string*

  Converts *string* to list of integer Unicode character codes which is used in **unicode** for internal string representation.

- **::unicode::tostring** *uclist*

  Converts list of integers *uclist* back to Tcl string.

- **::unicode::normalize** *form* *uclist*

  Normalizes Unicode characters list *ulist* according to *form* and returns the normalized list. Form *form* takes one of the following values: *D* (canonical decomposition), *C* (canonical decomposition, followed by canonical composition), *KD* (compatibility decomposition), or *KC* (compatibility decomposition, followed by canonical composition).

- **::unicode::normalizeS** *form* *string*

  A shortcut to ::unicode::tostring \[unicode::normalize \\$form \[::unicode::fromstring \\$string\]\]. Normalizes Tcl string and returns normalized string.

## EXAMPLES

```
% ::unicode::fromstring "\u0410\u0411\u0412\u0413"
1040 1041 1042 1043
% ::unicode::tostring {49 50 51 52 53}
12345
%
```

```
% ::unicode::normalize D {7692 775}
68 803 775
% ::unicode::normalizeS KD "\u1d2c"
A
%
```

## REFERENCES

- \[1\]

  "Unicode Standard Annex #15: Unicode Normalization Forms", (*http://unicode.org/reports/tr15/*)

## AUTHORS

Sergei Golovan

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *stringprep* 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

[stringprep(3tcl)](/stringprep/3tcl.md)

## KEYWORDS

normalization, unicode

## COPYRIGHT

```
Copyright (c) 2007, Sergei Golovan <sgolovan@nes.ru>
```
