字符编码与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 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

========

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

========

查看字符编码(UTF-8)

Unicode - 云设工具

11l月❤
在idea中 使用表达式: [\ud83d-\ud83e\ud000-\udfff]
上面的emoji能够被匹配到

你可能感兴趣的:(mysql,数据库)