> For the complete documentation index, see [llms.txt](https://lizh.gitbook.io/knowledge/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lizh.gitbook.io/knowledge/tech/00-bian-cheng-ji-chu-zhi-shi.md).

# 编程基础知识

## 换行符：CR、LF、CR/LF

CRLF、LF 是用来表示文本换行的方式。CR（Carriage Return）代表回车，对应字符 `\r`；LF（Line Feed）代表换行，对应字符 `\n`。

* **CR：** 用符号 `\r` 表示，十进制 ASCII 代码是13，十六进制代码为 0x0D；
* **LF：** 用符号 `\n` 表示，十进制 ASCII 代码是10，十六制为 0x0A。

由于历史原因，不同的操作系统文本使用的换行符各不相同。主流的操作系统一般使用 CRLF 或者 LF 作为其文本的换行符。

* **Dos 和 windows：** 采用 **回车+换行（CR/LF）**，即 `\r\n` 表示换行符；
* **UNIX/Linux：** 采用 **换行符（LF）**，即 `\n` 表示换行符；
* **MAC OS：** 采用 **回车符（CR）**，即 `\r` 表示换行符。

一般操作系统上的运行库会自动决定文本文件的换行格式。如：一个程序在 windows 上运行就生成 CR/LF 换行格式的文本文件，而在Linux 上运行就生成 LF 格式换行的文本文件。

在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题，特别是在编辑程序代码时，有时候代码在编辑器中显示正常，但在编y译时却会因为换行符问题而出错。

很多文本/代码编辑器带有换行符转换功能，使用这个功能可以将文本文件中的换行符在不同格式单互换。在不同平台间使用 FTP 软件传送文件时，在 ASCII 文本模式传输模式下, 一些 FTP 客户端程序会自动对换行格式进行转换。经过这种传输的文件字节数可能会发生变化。如果你不想 FTP 修改原文件，可以使用 bin 模式（二进制模式）传输文本。
