ZhangZhihui's Blog  

\u2028 和 \u2029 分别是什么字符?

 

\u2028\u2029Unicode 中的特殊换行符号,它们在文本处理、JSON、正则等场景中经常导致意外问题。具体解释如下:


🔹 \u2028Line Separator

  • 名称:Line Separator

  • Unicode 编码:U+2028

  • 字符含义:表示行分隔符,相当于“换行”(类似于 \n)。

  • 显示效果:断行,但不是传统的 LF (\n)CRLF (\r\n)

  • 用途:在 Unicode 标准中用于跨平台的换行符,尤其是避免平台差异时。


🔹 \u2029Paragraph Separator

  • 名称:Paragraph Separator

  • Unicode 编码:U+2029

  • 字符含义:表示段落分隔符,相当于“新段落”。

  • 显示效果:比行分隔符更强,相当于“空一行”或“新段落开始”。

  • 用途:Unicode 定义的段落分隔符(在文本编辑、排版系统中可用)。


🧠 举例说明

const text = "Hello\u2028World";
console.log(text);
// 输出:
// Hello
// World

const text2 = "Para1\u2029Para2";
console.log(text2);
// 输出:
// Para1
//
// Para2

 


⚠️ 注意事项

  1. JSON 中,\u2028\u2029 会被认为是非法字符(早期标准),因为它们会中断 JavaScript 字符串字面量。

    • 解决方法:在序列化时替换掉:

      json = json.replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');

       

  2. 正则表达式HTML日志系统 中,它们也可能引发“看不见的断行问题”。


✅ 简表总结

字符Unicode名称含义类似
\u2028 U+2028 Line Separator 换行符 \n
\u2029 U+2029 Paragraph Separator 段落符 “空一行”

 

\x0a 和 \x0d 分别是什么字符?

 

非常好,这两个是最常见的换行控制字符,属于 ASCII 控制字符 范围(0x00–0x1F)。


🔹 \x0A — Line Feed (LF)

  • 十六进制0x0A

  • 十进制:10

  • 名称Line Feed(简称 LF)

  • 符号\n

  • 作用光标下移一行,但不回到行首。

  • 常见于

    • Unix / Linux / macOS(现代)系统 作为换行符

    • 编程语言中的 \n

🧩 示例:

Hello\x0AWorld

显示为:

Hello World

🔹 \x0D — Carriage Return (CR)

  • 十六进制0x0D

  • 十进制:13

  • 名称Carriage Return(简称 CR)

  • 符号\r

  • 作用光标回到当前行的开头,但不换行。

  • 常见于

    • 老版 Mac OS(pre-OS X) 作为换行符

    • Windows 系统 与 LF 一起组成 \r\n

🧩 示例:

Hello\x0DWorld

显示结果取决于环境:

  • 在某些终端中可能覆盖为 Worldo

  • 在文本编辑器中可能不换行


🔸 常见换行差异(跨平台)

系统/环境换行符实际字节说明
Unix / Linux / macOS(现代) \n 0x0A 仅 LF
Windows \r\n 0x0D 0x0A CR + LF
旧版 macOS(Classic Mac OS) \r 0x0D 仅 CR

✅ 总结表

字符十六进制名称常用符号功能常见系统
\x0A 0x0A Line Feed \n 光标下移一行 Unix/Linux/macOS
\x0D 0x0D Carriage Return \r 光标回行首 Windows/旧Mac

 

posted on 2025-10-16 17:05  ZhangZhihuiAAA  阅读(76)  评论(0)    收藏  举报