Unicode编码

Unicode

如果把各种文字编码形容为各地的方言,那么Unicode就是世界各国合作开发的一种语言。

编码方式

可以容纳世界上所有文字和符号的字符编码方案。

Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。

码位就是可以分配给字符的数。

实现方式

在Unicode中:汉字“字”对应的数字是23383。

在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8UTF-16UTF-32

UTF是“Unicode Transformation Format”的缩写,可以翻译成Unicode字符集转换格式。

其中UTF-8使用最为广泛。

img

字节序

Unicode标准建议用BOM(Byte Order Mark)来区分字节序。

UTF编码 ║ Byte Order Mark

UTF-8 ║ EF BB BF

UTF-16LE ║ FF FE

UTF-16BE ║ FE FF

UTF-32LE ║ FF FE 00 00

UTF-32BE ║ 00 00 FE FF

Unicode编码原则

Universality:提供单一、综合的字符集,编码一切现代与大部分历史文献的字符。

Efficiency:易于处理与分析。

Characters, not glyphs:字符,而不是字形。

Semantics:字符要有良好定义的语义。

Plain text:仅限于文本字符。

Logical order:默认内存表示是其逻辑序。

Unification:把不同语言的同一书写系统(scripts)中相同字符统一起来。

Dynamic composition:附加符号可以动态组合。

Stability:已分配的字符与语义不再改变。

Convertibility:Unicode与其他著名字符集可以精确转换。

UTF8与Unicode互转

img

UTF8与Unicode互转源码:https://github.com/TxtpGame/KeyWord/blob/main/unicode.hpp 跨平台

GBK与Unicode互转

GBK编码字符数最多65536,用数组一一映射查表即可。

Emoji

emoji,绘文字,图画字符。目前使用范围非常广泛。

unicode对emoji做了编码 https://unicode-table.com/cn/emoji/

十二生肖:🐭🐂🐅🐰🐲🐍🐴🐑🐵🐓🐶🐷

posted @ 2022-07-13 15:57  天下太平  阅读(315)  评论(0)    收藏  举报