前言
今天要说的是3个符号: ,它们是编程中最常见的几个制表符。
简介
\r 表示回车
ASCII 码:13
“回车”是一个历史遗留问题,在机械打印机时代表示将打印头定位到左边。虽然,我们键盘上有回车键(enter),但是它和真正的回车其实是有区别的。
\n 表示换行
ASCII 码:10
这才是 enter 键应该干的事情。
\t 是水平制表符
ASCII 码:9
这个是 tab 键,在编程的时候默认缩进就是“\t”,不过现在主流是用4个空格来代替它。
回车和换行有什么区别?
在打字机时代,回车是将打印头定位到左边(你可以理解为复位)换行则是将打印头向下挪一行。
打字机每次换行必须是:回车+换行,才可以。
这和我们有什么关系?
没什么关系,历史遗留问题。
今天还有遗留问题吗?
windows 系统上,enter键,依然是 回车+换行的风格,也就是:
linux、mac系统上,enter键,则只是换行,也就是 (仅限macos 10以后的版本)
这会造成什么后果?
linux 上敲的文本(文档、代码等),在windows 上变成一行。
我试过了,并没有变成一行
因为你使用的是专业编辑器(他们帮我们做了自动转换),要用最传统的,比如:记事本。
对编程有什么影响?
在使用PHP 函数时,就有这样的提示:
PS:极为少见的提醒了两次。
了解这些制表符,对编程有什么帮助?
还是以 PHP为例:
这样可以实现换行(如果你想在HTML中实现换行,要用)
这样则不行。(看出和上面的区别了吗?)
当你使用 trim() 函数时,它都做了什么?
很多人都知道PHP中有一个过滤首尾空格的函数,但其实除了空格它还做了更多,包括:
(ASCII 32 (0x20)),普通空白字符。
(ASCII 9 (0x09)), 制表符.
(ASCII 10 (0x0A)),换行符。
(ASCII 13 (0x0D)),回车符。
(ASCII 0 (0x00)), NUL空字节符。
(ASCII 11 (0x0B)),垂直制表符。
总结
制表符位于 ASCII 码的0-31位(除了制表符还有其他,统称为控制字符),在编程中处理字符串的时候,应该要小心这些东西。
领取专属 10元无门槛券
私享最新 技术干货