当前位置: 首页 > news >正文

UNICODE UTF8

文章目录

    • UNICODE
    • UNICODE 编码实现

UTF-8(Unicode Transformation Format - 8-bit)是 Unicode 的一种编码方式,是 Unicode 中字符的具体表示形式。

可以简单理解为:

Unicode 是字符的“字典”,规定每个字符有一个唯一的编号。
UTF-8 是编码方式,负责将这些编号转换为计算机能够理解的字节序列。

UNICODE

UNICODE 编码就是解决这类问题:对于地球上任意一个字符,都给它一个唯一的数值。

UNICODE 编码实现

所谓编码实现,就是对于一个数值,怎么表示它。这很奇怪,数值还能怎么表示?怎么表示一个 UNICODE 数值?

  1. 使用 3 个字节表示一个 UNICODE

    不,太浪费。使用 3 个字节来表示一个 UNICODE 数
    值?这当然是很省事的方法,但是会造成浪费,比如字符 A 的 UNICOCDE 值是0x41,难道也用“0x41 0x00 0x00”这 3 个字节来表示?

  2. UCS-2 Little endian/UTF-16 LE

    每个 UNICODE 值用 3 字节来表示有点浪费,那只用 2 字节呢?它可以表示2^16=65536 个字符,全世界常用的字符都可以表示了。

  3. UCS-2 Big endian/UTF-16 BE

    Big endian 表示大字节序,数值中权重低的字节放在后面,比如字符“ab中”在 TXT 文件中的数值如下,其中的“A”使用“0x00 0x41”两字节表示;“中”使用“0x4e 0x2d”两字节表示。文件开头的“0xfe 0xff”表示“UTF-16 BE”。

  4. UTF8

    在上面 2 种方法中,每一个 UNICODE 使用 2 字节来表示,这有 3 个缺点:表示的字符数量有限、对于 ASCII 字符有空间浪费、如果文件中有某个字节丢失,这会使得后面所有字符都因为错位而无法显示。


http://www.mrgr.cn/news/42111.html

相关文章:

  • Javascript数组研究02_手写实现_at_concat_copyWithin_entries_every
  • 风格迁移项目一:如何使用
  • JQuery基本介绍和使用方法
  • CF687D Dividing Kingdom II 题解
  • 简历制作面试篇
  • pdb个人记录
  • 【算法系列-链表】交换链表节点(反转 + 交换)
  • Spring MVC的运行流程详解
  • Netty:高性能异步网络编程框架全解析
  • Python中重载操作符实现管道操作
  • python全栈学习记录(二十一)类的继承、派生、组合
  • 【C++】vector类的模拟实现
  • QT入门知识----2024.8.21-9.28
  • 如何降低接口的响应时间(RT)
  • 滚雪球学Oracle[5.2讲]:数据库备份与恢复基础
  • Servlet的生命周期及用户提交表单页面的实现(实验报告)
  • 【c++】反证法证明为什么c++不能像JavaScript的typeof那样自动判断数据类型
  • [题解] [SDOI2011] 消防
  • Prometheus之Pushgateway使用
  • 【洛谷】AT_dp_m Candies 的题解