我只在TCL中实现套接字客户端。需要通知服务器客户端发送的消息的长度,因此我在消息长度的前缀为utf-8之前添加消息的长度。我使用TCL Format命令将消息长度转换为utf-8字符。
但是,Format命令并不总是返回正确的utf-8字符,这会混淆服务器。 例如,在下面的示例代码中,格式为21和167返回§:
% format %c 21
§
% format %c 167
§
可能是我做错了吗?
答案 0 :(得分:1)
§应来自format %c 167
;这完全符合预期,因为它是section sign character。相比之下,format %c 21
应生成non-printable NAK character,但由于某种原因,您的终端会以不同方式呈现它。 (我不确定它会回溯到什么样的解释;它不是我在编码表中列出的那种方便的。)
Tcl可能做得恰到好处,特别是因为NAK字符存在于最常见的字符编码中。