代码为
printf(" ;("n\
查看一下十六进制数据能发现问题,前面都一样,从
\n");
正常的十六进制应该是
\ n " ) ;
5C 6E 22 29 3B
但你发出来这个对应了
; ( " n \
E2 80 AE 3B 28 22 6E 5C
前面几个超过了0x80的好像是IBM做的ASCII的扩展,就是这几个字符控制了你描述的奇怪现象,具体什么含义可以查一下表
文中的空白字符是unicode的控制字符,具体的是Unicode Character 'RIGHT-TO-LEFT OVERRIDE',也就是从右向左覆盖的字符,该字符的编码是E2 80 AE(UTF-8)。这段字符后的看上去是\n)",但实际上是反过来的[;("n\]。如果你想写进代码或者就在一般的编辑文本框里输入,就看上去像是反的