Unicode汉字编码范围\u4E00-\u9FA5
来源:互联网 发布:java continue跳几层 编辑:程序博客网 时间:2024/06/05 06:46
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。
- Unicode汉字编码范围\u4E00-\u9FA5
- 中文的范围:/u4e00 - /u9fa5
- unicode编码[\u4e00-\u9fa5]匹配所有中文
- charCodeAt方法以及Unicode中文汉字编码范围
- 匹配中文字符的正则表达式: [u4e00-u9fa5]( 转)
- 匹配中文字符的正则表达式: [u4e00-u9fa5]
- 匹配中文字符的正则表达式: [u4e00-u9fa5]
- 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
- 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
- java正则中REGEX = "[\u4e00-\u9fa5]的意思?
- 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
- 正则表达式匹配中文[\u4e00-\u9fa5]和[^\x00-\xff]
- 匹配中文字符的正则表达式: [u4e00-u9fa5](
- 汉字编码范围
- 汉字编码范围
- 汉字编码范围
- 汉字编码范围
- GBK汉字编码范围
- 原码、反码、补码
- Jsoup获取HTML响应并进行传值操作
- 遥控器输入子系统事件
- 张孝祥java视频学习笔记(七)
- maven
- Unicode汉字编码范围\u4E00-\u9FA5
- 单片机网关下载程序流程小纪
- 欢迎使用CSDN-markdown编辑器
- Spring(AbstractRoutingDataSource)实现动态数据源切换
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- 使用bind配置DNS服务器
- setsockopt中SO_RCVTIMEO和SO_SNDTIMEO
- CocoaPods安装、使用与卸载
- 嵌套在ScrollView中的TextView控件可以自由滚动