在QQ聊天中输入该代码为什么会出现后续语句全部转为倒序

代码为

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\]。如果你想写进代码或者就在一般的编辑文本框里输入,就看上去像是反的