TCL格式命令返回错误的UTF-8字符

时间:2017-11-20 14:03:11

标签: tcl

我只在TCL中实现套接字客户端。需要通知服务器客户端发送的消息的长度,因此我在消息长度的前缀为utf-8之前添加消息的长度。我使用TCL Format命令将消息长度转换为utf-8字符。

但是,Format命令并不总是返回正确的utf-8字符,这会混淆服务器。 例如,在下面的示例代码中,格式为21和167返回§:

% format %c 21
§
% format %c 167
§

可能是我做错了吗?

1 个答案:

答案 0 :(得分:1)

§应来自format %c 167;这完全符合预期,因为它是section sign character。相比之下,format %c 21应生成non-printable NAK character,但由于某种原因,您的终端会以不同方式呈现它。 (我不确定它会回溯到什么样的解释;它不是我在编码表中列出的那种方便的。)

Tcl可能做得恰到好处,特别是因为NAK字符存在于最常见的字符编码中。