PushUp&PullUp

博客园 首页 新随笔 联系 订阅 管理

相关参考:

网页编码就是那点事 | 潜行者m (qianxingzhem.com)

Unicode 和 UTF-8 有什么区别? - 知乎 (zhihu.com)

为什么 UTF-8 编码比 UTF-16 编码应用更广泛? - 知乎 (zhihu.com)

Unicode 13.0.0

Unicode – The World Standard for Text and Emoji

字节序标记(BOM) - 知乎 (zhihu.com)

Java处理UTF-8文件的BOM头部 - 知乎 (zhihu.com)

 

Unicode【Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“】是一种编码标准,Version 13.0已经包含超过14W字符。

UTF【UCS Transfer Format】是实现Unicode的具体编码方案,windows采用的是UTF-16【采用2字节定长,只能包含6W多字符】,LINUX是UTF-8【从1字节-4字节变长】,还有utf-32。

以下摘录:

“最流行的操作系统和 UI framework 的内部字符串表达都是 UTF-16 而不是 UTF-8,所以你在电脑上能看到的字符串,尽管很多原始输入数据是 UTF-8 (比如从网页或者文本文件读入),但实际上都要先在内存中转换为 UTF-16 才会显示出来的。

  • Windows API 的 Wide Char 表达是 UTF-16: Unicode (Windows), L"" 表示是转换为 wide char。
  • Cocoa 的 NSString 和 Core Foundation 的 CFString 内部表达都是 UTF-16,所以其实 OS X 和 iOS 内部处理都用的是 UTF-16。
  • Java String 的内部表达是 UTF-16,所以大量跨平台程序和 Android 程序其实内部也在用 UTF-16。
UTF-8 是很方便的外部字符串表达格式,但这不能代表 UTF-8 应用就更广泛了。”

“BOM——Byte Order Mark,就是字节序标记。”

 

posted on 2021-05-19 16:33  PushUp&PullUp  阅读(138)  评论(0编辑  收藏  举报