Printing 标准ML打印控制字符

Printing 标准ML打印控制字符,printing,casting,sml,smlnj,control-characters,Printing,Casting,Sml,Smlnj,Control Characters,所以我偶然发现了一个奇怪的小问题。我想打印控制字符,它应该打印那个奇怪的小框,暗示我正在打印一个不可打印的字符 当我尝试时: print "\^C"; 它很好用。然而,当我这样做时: print (Char.toString(#"\^C")); 它逐字打印“^C”。这对我来说没有任何意义,他们不应该打印同样的东西吗?Char.toString不会将字符转换为包含一个字符的字符串,而是将其转换为包含3个字符的字符串,“\”、“^”和“C” 有人能给我解释一下这种行为吗?谢谢。这是因为返回字符的

所以我偶然发现了一个奇怪的小问题。我想打印控制字符,它应该打印那个奇怪的小框,暗示我正在打印一个不可打印的字符

当我尝试时:

print "\^C";
它很好用。然而,当我这样做时:

print (Char.toString(#"\^C"));
它逐字打印“^C”。这对我来说没有任何意义,他们不应该打印同样的东西吗?Char.toString不会将字符转换为包含一个字符的字符串,而是将其转换为包含3个字符的字符串,“\”、“^”和“C”

有人能给我解释一下这种行为吗?谢谢。

这是因为返回字符的可打印表示形式

如果希望从
char
直接转换为
string
,则需要使用该函数