Unicode 目前规划的总空间是17个平面(平面0至16),0x0000 至 0x10FFFF。每个平面有 65536 个码点。
你只是大致知道平面0(「Basic Multilingual Plane」,即「BMP」)的 65536 个码点(即 0x0000 至 0xFFFF)如何编码,这不是 Unicode 的全部。

  • BMP 的字符是 Unicode 中最基础和最常用的一部分,以 UTF-16 编码时使用2字节,以 UTF-8 编码时使用1至3字节。
  • 超出 BMP 的字符以 UTF-16 或 UTF-8 编码都需要4字节。
  • 另外还有一个比较少用的编码形式,UTF-32,它编码任何 Unicode 字符都需要4个字节。

Unicode 的基础是一个编号的字符集,在字符集之上又规定了模块化的编码等等技术层次,各种具体的编码形式并不一致,你说的「Unicode 只有两个字节」这句话根本不成立。

作者:梁海
链接:https://www.zhihu.com/question/22881537/answer/22947465
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

--------------------------------------------------------------------------------------------------------

网上说的占两个字节,一般是java程序员,char字符默认使用Unicode编码的ucs-16be,一个char占据两个字符,所以在char来表示大于65536时候,编译期会报错,如

那为什么string又可以呢?https://www.cnblogs.com/crazylqy/p/10481785.html

Unicode 是不是只有两个字节,为什么能表示超过 65536 个字符的更多相关文章

  1. 用FileInputStream读取数据,计算机如何实现将两个字节拼接成中文的?

    package itcast_02; import java.util.Arrays; /* * 在计算机中如何识别将连个字节转换为中文的呢? * 在计算机中中文的存储为两个字节 : * 第一个字节 ...

  2. 【.net】从比较两个字节数组谈起

    上午,有位初学者朋友问:如何比较两个字节数组中各字节是否相等? 不许笑,我一向反对嘲笑初学者,初学者不认真学习时你可以批评,但不能讥嘲.你不妨想想,你自己开始学习编程的时候又是什么个光景? 好,于是, ...

  3. javascript 返回字符长度,中文为两个字节,英文为一个字节

    //正则:用于区分中文为两个字节function getLength(str){    return String(str).replace(/[^\x00-\xff]/g,'aa').length; ...

  4. TCP协议承载的DNS报文,DNS报文首部前多出两个字节的DNS报文长度字段,是何意义?

    一.TCP报文头部简介 ●源.目标端口号字段:占16比特.TCP协议通过使用"端口"来标识源端和目标端的应用进程.端口号可以使用0到65535之间的任何数字.在收到服务请求时,操作 ...

  5. C语言中‘\n'为什么能表示CRLF两个字节

    为什么要说这个简单的问题? 众所周知,在Windows下文本文件的换行符是CRLF,占两个字节.在Unix下是LF,占一个字节.(还有奇葩的Mac是CR).但是C语言中直接printf一个 ‘\n’, ...

  6. 一个字 word 是16位, 一个字由两个字节组成 , 字节=byte ,一个字节8位, 位=bit 如果没有特殊说明kb 就是指 k*bit

    一个字 word 是16位, 一个字由两个字节组成 , 字节=byte,,一个字节8位, 位=bit 如果没有特殊说明kb 就是指 k*bit kbyte= k*byte

  7. Java基础知识强化之IO流笔记23:计算机是如何识别把两个字节拼接为中文(附加)

    1. 计算机是如何识别什么时候该把两个字节转换为一个中文呢? 在计算机中中文的存储分两个字节: • 第一个字节肯定是负数. • 第二个字节常见的是负数,可能有正数.但是没影响. 2. 代码示例: pa ...

  8. PHP截取带有汉字的字符串,将汉字按两个字节计算

    <?php header("Content-type:text/html;charset=utf-8"); /** *截取字符串,汉字占两个字节,字母占一个字节 *页面编码必 ...

  9. 关于PHP输出字符串多了两个字节的BUG

    近日IOS开发那边小伙伴跟我说,解析服务器发回的字符信息时候出现bug. 明明利用Log输出来的是字符串"hello"  可是利用length计算就是多出来两个字节,比如这里是7. ...

随机推荐

  1. 学习Acegi应用到实际项目中(11)- 切换用户

    在某些应用场合中,可能需要用到切换用户的功能,从而以另一用户的身份进行相关操作.这一点类似于在Linux系统中,用su命令切换到另一用户进行相关操作. 既然实际应用中有这种场合,那么我们就有必要对其进 ...

  2. 京东Alpha平台开发笔记系列(三)

    摘要:通过前面两篇文章的讲述,大致了解了JdAlpha平台前端开发的主要流程.接下来本篇文章主要讲述后台服务器端开发的主要流程.这里会涉及到后台服务器的搭建的内容,本篇文章就不以赘述,如需了解请读下面 ...

  3. SecureCRT两步验证自动登录脚本

    简介 用于解决 Google Authenticator 的两步验证登录.涉及到密码,不建议脚本保存到公共环境. 安装oathtool Mac $ brew install oath-toolkit ...

  4. bzoj3110(整体二分)

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

  5. web browser 发展史

    浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,用来显示在万维网或局域网等内的文字.图像及其他信息,便于人们的浏览. Tim Berners-Lee是第一个使 ...

  6. 【转】odoo nginx 配置

    ## OpenERP backend ## upstream odoo { server 127.0.0.1:8069 weight=1 fail_timeout=0; } upstream odoo ...

  7. 吴恩达机器学习笔记37-学习曲线(Learning Curves)

    学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差.方差问题.学习曲线是学习算法的一个很好的合理检验(sanity check).学习曲线是将训练集误差和交叉验证集误差作为 ...

  8. Kali学习笔记14:SMB扫描、SMTP扫描

    SMB(Server Message Block)协议,服务消息块协议. 最开始是用于微软的一种消息传输协议,因为颇受欢迎,现在已经成为跨平台的一种消息传输协议. 同时也是微软历史上出现安全问题最多的 ...

  9. Kali学习笔记10:端口扫描详解(下)

    上一篇先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描 https://www.cnblogs.com/xuyiqing/p/9389276.html 接下来我们看看TCP的全连接端口扫描 ...

  10. ”危险“的restrict与GCC的编译优化

    restrict是C99标准中新添加的关键字,对于从C89标准开始起步学习C语言的同学来说(包括我),第一次看到restrict还是相当陌生的.Wikipedia给出的解释如下: In the C p ...