Unicode汉字编码范围\u4E00-\u9FA5
Unicode
世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。
可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。
Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字”严”。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表http://www.chi2ko.com/tool/CJK.htm。
UTF-8
互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种Unicode的实现方式。其他实现方式还包括UTF-16(字符用两个字节或四个字节表示)和UTF-32(字符用四个字节表示),不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则很简单,只有二条:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
下表总结了编码规则,字母x表示可用编码的位。
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
跟据上表,解读UTF-8编码非常简单。如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
下面,还是以汉字”严”为例,演示如何实现UTF-8编码。
已知”严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此”严”的UTF-8编码需要三个字节,即格式是”1110xxxx 10xxxxxx 10xxxxxx”。然后,从”严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,”严”的UTF-8编码是”11100100 10111000 10100101”,转换成十六进制就是E4B8A5。
转载:https://blog.csdn.net/u014431852/article/details/48003321
Unicode汉字编码范围\u4E00-\u9FA5相关推荐
- Unicode汉字编码表-转
Unicode汉字编码表-转 空间 1 Unicode编码表 Unicode只有一个字符集,中.日.韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采 ...
- Unicode汉字编码表以及参考源码分享
2019独角兽企业重金招聘Python工程师标准>>> 1 Unicode编码表 Unicode只有一个字符集,中.日.韩的三种文字占用了Unicode中0x3000到0x9FFF的 ...
- oracle u4e00 u9fa5,Oracle 判断汉字 [\u4e00-\u9fa5]
最近由于单位提了一个需求,要判断提供的用户名称里不有全角字符,至少有两个汉字.找了半天,想通过正则表达式来解决,但测试了好久才发现,Oracle的正则函数REGEXP_LIKE 不支持"\u ...
- 打印unicode汉字编码字符串为乱码怎么办?
应用代码中使用了unicode编码来使用汉字,现在需求是想把这些汉字抓出来调试. 传统使用%s打印出来的是乱码,到底该怎么办呢? 解决办法: 假如原字符串传递的指针为char * text,新建一整型 ...
- unicode 汉字编码表(4e00-5aff)
CJK Unified Ideographs - Unicode Character Table - 4E00-9FFF 4E00-9FFF 一4e00 丁4e01 丂4e02 七4e03 丄4e04 ...
- oracle u4e00 u9fa5,oracle中文与数字正则实例代码
在oracle中regexp_like(VALID_STR ,'^[+-]?\d+(\.\d)?\d*$'); 是用来正数字的,中文用new Regex("[\u4e00-\u9fa5]+& ...
- Unicode汉字编码
U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F --------------------------------------------- ...
- 汉字对应的unicode编码
在Java中采用unicode字符集,每个字符占据2个字节,unicode字符集最多可包含65 535个字符. 65 535是一个很大的数字,英文字母.俄文字母.希腊字母.日文字母.阿拉伯数字.标点符 ...
- Oracle正则表达式匹配中文的问题
查资料知道中文Unicode范围是\u4e00 - \u9fa5 可是自己用来正则表达式匹配中文总是用不了Unicode.最简单举例: select regexp_replace('abc秋歌def' ...
最新文章
- sql优化ppt_Spark优化 | Spark 3.0 中七个必须知道的 SQL 性能优化
- 英语写作-Introduction
- 均值滤波 中值滤波 高斯平滑滤波
- java线程——信号量(Semaphore)+障栅(CyclicBarrier)
- DDD专家张逸:复杂与架构演进的关系
- maven如何合并两个war到一个war项目中
- 火星人(洛谷-P1088)
- Spring学习笔记--导航
- 编程基本功:注释不是工作的一部分,是程序员赠送给公司的
- markdown:轻松转成html 并加载本地图片
- 开运算和闭运算的性质
- Newtonsoft.Json.dll 的使用
- 【AI番外】微信小程序前后端开发
- Linux 配置双网卡,同时访问内外网
- usb口拒绝访问_插u盘拒绝访问怎么办_win7u盘插电脑上显示拒绝访问的解决方法...
- 英语演讲常用连接词和句子
- springMVC和mybatis的框架搭建
- 有没有这样的后浪,月薪3000
- 微信小程序 java农产品商城供销系统#计算机毕业设计
- 神州信息资金头寸管理系统连续落地多家银行,实现数智化风控管理
热门文章
- 为CentOS8安装中文输入法
- Closed socket connection for client /39.103.162.230:56100 (no session established for client)
- 四.自定义View MeasureSpec
- DROO main.py
- 情人节相约曼谷,来一场浪漫旅行
- 小程序排名第一后怎么精细运营?
- 使用StopWatch计算耗时
- 【MTK】CTSITS谷歌认证测试项常见fail项解法
- 原生js —— 表单验证练习(12306注册)
- Linux 文件处理3剑客之 awk