Tcl\_UtfToUpper(3) Tcl Library Procedures Tcl\_UtfToUpper(3)

```

```

# [NAME](#NAME)

Tcl\_UniCharToUpper, Tcl\_UniCharToLower, Tcl\_UniCharToTitle, Tcl\_UtfToUpper, Tcl\_UtfToLower, Tcl\_UtfToTitle - routines for manipulating the case of Unicode characters and UTF-8 strings

# [SYNOPSIS](#SYNOPSIS)

```
#include <tcl.h>

int
Tcl_UniCharToUpper(ch)

int
Tcl_UniCharToLower(ch)

int
Tcl_UniCharToTitle(ch)

Tcl_Size
Tcl_UtfToUpper(str)

Tcl_Size
Tcl_UtfToLower(str)

Tcl_Size
Tcl_UtfToTitle(str)
```

# [ARGUMENTS](#ARGUMENTS)

int *ch* (in)

The Unicode character to be converted.

char *\*str* (in/out)

Pointer to the TUTF-8 byte sequence to be converted in place.

```
    
```

# [DESCRIPTION](#DESCRIPTION)

N.B. Refer to the **Tcl\_UniChar** documentation page for a description of the *TUTF-8* encoding and related terms referenced here.

The first three routines convert the case of individual Unicode characters:

If *ch* represents a lower-case character, **Tcl\_UniCharToUpper** returns the corresponding upper-case character. If no upper-case character is defined, it returns the character unchanged.

If *ch* represents an upper-case character, **Tcl\_UniCharToLower** returns the corresponding lower-case character. If no lower-case character is defined, it returns the character unchanged.

If *ch* represents a lower-case character, **Tcl\_UniCharToTitle** returns the corresponding title-case character. If no title-case character is defined, it returns the corresponding upper-case character. If no upper-case character is defined, it returns the character unchanged. Title-case is defined for a small number of characters that have a different appearance when they are at the beginning of a capitalized word.

The next three routines convert the case of null-terminated TUTF-8 byte sequences in place in memory:

**Tcl\_UtfToUpper** changes every TUTF-8 encoded character in *str* to upper-case. Because changing the case of a character may change its size, the byte offset of each character in the resulting string may differ from its original location. **Tcl\_UtfToUpper** writes a null byte at the end of the converted string. **Tcl\_UtfToUpper** returns the new length of the string in bytes. This new length is guaranteed to be no longer than the original string length.

**Tcl\_UtfToLower** is the same as **Tcl\_UtfToUpper** except it turns each character in the string into its lower-case equivalent.

**Tcl\_UtfToTitle** is the same as **Tcl\_UtfToUpper** except it turns the first character in the string into its title-case equivalent and all following characters into their lower-case equivalents.

# [KEYWORDS](#KEYWORDS)

utf, unicode, toupper, tolower, totitle, case

8.1 Tcl

---

Document: Tcl_UtfToLower(3) from tcl 9.1.0-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
