encoding - Manipulate encodings
encoding option ?arg arg ...?
Strings in Tcl are logically a sequence of 16-bit Unicode
characters. These strings are represented in memory as a sequence of bytes
that may be in one of several encodings: modified UTF-8 (which uses 1 to 3
bytes per character), 16-bit “Unicode” (which uses 2 bytes per
character, with an endianness that is dependent on the host architecture),
and binary (which uses a single byte per character but only handles a
restricted range of characters). Tcl does not guarantee to always use the
same encoding for the same string.
Different operating system interfaces or applications may generate
strings in other encodings such as Shift-JIS. The encoding command
helps to bridge the gap between Unicode and these other formats.
Performs one of several encoding related operations, depending on
option. The legal options are:
- encoding
convertfrom ?encoding? data
- Convert data to Unicode from the specified encoding. The
characters in data are treated as binary data where the lower
8-bits of each character is taken as a single byte. The resulting sequence
of bytes is treated as a string in the specified encoding. If
encoding is not specified, the current system encoding is
used.
- encoding
convertto ?encoding? string
- Convert string from Unicode to the specified encoding. The
result is a sequence of bytes that represents the converted string. Each
byte is stored in the lower 8-bits of a Unicode character (indeed, the
resulting string is a binary string as far as Tcl is concerned, at least
initially). If encoding is not specified, the current system
encoding is used.
- encoding
dirs ?directoryList?
- Tcl can load encoding data files from the file system that describe
additional encodings for it to work with. This command sets the search
path for *.enc encoding data files to the list of directories
directoryList. If directoryList is omitted then the command
returns the current list of directories that make up the search path. It
is an error for directoryList to not be a valid list. If, when a
search for an encoding data file is happening, an element in
directoryList does not refer to a readable, searchable directory,
that element is ignored.
- encoding
names
- Returns a list containing the names of all of the encodings that are
currently available. The encodings “utf-8” and
“iso8859-1” are guaranteed to be present in the list.
- encoding
system ?encoding?
- Set the system encoding to encoding. If encoding is omitted
then the command returns the current system encoding. The system encoding
is used whenever Tcl passes strings to system calls.
The following example converts a byte sequence in Japanese euc-jp
encoding to a TCL string:
set s [encoding convertfrom euc-jp "\xA4\xCF"]
The result is the unicode codepoint: “\u306F”, which
is the Hiragana letter HA.