字符编码与java中的 数字前缀

在了解字符编码时, 扩展了解到

转义字符

\x 表示ASCII编码

\u 表示Unicode编码

数字前缀, java语言

0开头, 默认是八进制

0x开头, 16进制

0b开头, 二进制

正则

\d 表示整数

===========

UTF-8 编码与 MySQL 中的 utf8、utf8mb4 - beihai blog

UTF-8 是变长字节编码方式。对于某一个字符的 UTF-8 编码,如果只有一个字节则其最高二进制位为 0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为 1 的个数决定了其编码的位数,其余各字节均以10开头。UTF-8 在设计上最多可用到6个字节。

个人理解: 不同的字节长度表示的范围不同
为了快速区分是几字节
首字节根据0出现的最高位来判断;
多字节的:
        首字节, 最高位有几个1, 就是几字节长度, 剩下的是有效位
        后面的字节,都是10开头, 剩下的是有效位

 

 ===========

Unihan data for U+6708  

"月"字
UTF-8编码
十六进制: E6 9C 88
二进制: 1110 0110 1001 1100 1000 1000
              E     6       9       C      8        8

根本编码规则找到 3字节的格式: 1110xxxx 10xxxxxx 10xxxxxx
根据格式提取 Unicode有效值,    0110011100001000
为了方便观察, 手动分割  , 得到:  0110,0111, 0000,1000
转16进制       6,7,0,8
最终的16进制表现形式:  0x6708
得到Unicode的表示: U+6708, \u6708

字节数UTF-8 编码
1字节0xxxxxxx
2字节110xxxxx 10xxxxxx
3字节1110xxxx 10xxxxxx 10xxxxxx
4字节11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

UNICODE 与 UTF-8 转换

Unicode 符号范围(十六进制)UTF-8 编码方式(二进制)
0000 0000-0000 007F0xxxxxxx
0000 0080-0000 07FF110xxxxx 10xxxxxx
0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

========

正则表达式 - 匹配 Unicode 和其他字符_wzy0623的博客-CSDN博客

========

查看字符编码(UTF-8)

Unicode - 云设工具

11🐻l月❤
在idea中 使用表达式: [\ud83d-\ud83e\ud000-\udfff]
上面的emoji能够被匹配到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值