encoding(3tcl) Tcl Built-In Commands encoding(3tcl)

encoding - 操纵编码

encoding option ?arg arg ...?

在 Tcl 中字符串使用16位的 Unicode 字符来编码。不同的操作系统接口或应用可以生成用其他编码如 Shift-JIS 的字符串。encoding 命令是 Unicode 和其他格式之间的桥梁。

依照option,完成与编码相关一系列操作之一。合法的 options有:
encoding convertfrom ?encoding? data
data 从特定的 encoding(编码)转换成 Unicode。在 data 中的字符被作为二进制数据对待,其中的每个字符的低8位被作为一个单一的字节接受。结果的字节序列被作为一个用特定的 encoding 编码的字符串。如果未指定 encoding,使用当前的系统编码。
encoding convertto ?encoding? string
string 从 Unicode 转换成特定的 encoding编码。结果是表示转换后的字符串的一个字节序列。每个字节都存储在一个 Unicode 字符的低8位中。如果未指定 encoding,使用当前的系统编码。
encoding names
返回包含当前可获得的所有编码的名字的一个列表。
encoding system ?encoding?
设置系统编码为 encoding。如果省略了 encoding,则命令返回当前系统编码。在 Tcl 向系统调用传递字符串时使用系统编码。

一个常见的实践是用产生 euc-jp 编码输出的文本编辑器来写脚本文件,它把 ASCII 字符表示成一个单一的字节而把日文字符表示成两字节。这样通过简单的键入对应于非 ASCII 字符的文字串便可在脚本中某个位置上嵌入它。但是, 由于 source 命令总是使用 ISO8859-1 编码来读文件,Tcl 将把文件中的每个字节作为一个单独的字符对待并映射成在 Unicode 中的 00 (代码)页(中的字符)。结果的 Tcl 字符串不包含想要的日文字符。转而,它将包含相应与原始的字符串的每个字节的一个Latin-1 字符的序列。encoding 命令将可被用于把这个字符串转换成想要的日文 Unicode 字符。例如,
set s [encoding convertfrom euc-jp "\xA4\xCF"]
将返回 Unicode 字符串 "\u306F",它是 Hiragana 字母 HA。

Tcl_GetEncoding(3)

encoding

寒蝉退士

2001/07/08

http://cmpp.linuxforum.net

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
8.1 Tcl