比尔萄堡

上帝说: “要有光” 于是,就有了光。


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

utf-8与unicode

时间: 2022-08-25 分类: 网络   字数: 1332 字 阅读: 3分钟 阅读次数:

ASCII

ASCII table

旧时代的中文编码

GB2312

连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符。


#### GBK
**GBK** 标准,GBK包括了GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。 干脆不再要求低字节一定是127号之后的[内码](https://www.zhihu.com/search?q=%E5%86%85%E7%A0%81&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A69732605%7D),只要第一个字节是大于127就固定表示这是一个汉字的开始。

#### GB18030
后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的[少数民族](https://www.zhihu.com/search?q=%E5%B0%91%E6%95%B0%E6%B0%91%E6%97%8F&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A69732605%7D)的字,GBK扩成了 **GB18030**。

以上的专为中文形成的标准,通称他们叫做 “**DBCS**“(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里。


### Unicode

目前的[Unicode](https://zh.wikipedia.org/wiki/Unicode "Unicode")(Universal Coded Character Set) 字符分为17组编排,每组称为**平面**(Plane),而每平面拥有65536(即216)个代码点。

在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在[基本多文种平面](https://zh.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E6%96%87%E7%A8%AE%E5%B9%B3%E9%9D%A2 "基本多文种平面")里的所有字符,要用四个数字(即2字节,共16位,例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五或六个数字。

#### 样例

var a = “01Aa我” a.charCodeAt(4) //25105

var b=25105 b.toString(16) // ‘6211’

‘\u6211’ === “我” //true

在golang中,rune将字符串拆分为多个Unicode 字符序列,而byte则将其拆分为字节序列。

s := “我” log.Println([]byte(s)) log.Println([]rune(s))

2022/09/15 17:41:56 [230 136 145] 2022/09/15 17:41:56 [25105] ```

UTF-8

Unicode Transformation Format,简称为UTF

Unicode符号范围 UTF-8编码方式
(十六进制) (二进制)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

有时数据库倒出的表格,用excel打开是乱码,可能是没有使用 utf8-with-BOM

A BOM-ed UTF-8 string will start with the three following bytes. EF BB BF

参考链接:Unicode 和 UTF-8 有什么区别

#utf-8# #unicode#

标题:utf-8与unicode

作者:训导主任林作栋

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Alipay

支付宝打赏

异步跳转被拦截
值传递 and 引用传递
训导主任林作栋

训导主任林作栋

戏谑的码农,北野武的拥趸,李安的迷弟,伍佰的Fans

55 日志
23 分类
62 标签
豆瓣
友情链接
  • Obsidian
  • V2EX
  • 关注黑客与极客
  • 廖雪峰
标签云
  • Linux 6
  • K8s 5
  • 数据库 5
  • Golang 4
  • Etcd 3
  • Mysql 3
  • Ai 2
  • Gitlab 2
  • Postgres 2
  • 前端 2
© 2010 - 2024 比尔萄堡
Powered by - Hugo v0.58.2 / Theme by - NexT
/
Storage by Vercel / 刘 ICP 备 18047355 号
0%