正则表达式——Unicode
第 7 章 Unicode
7.1 关于编码
通常,英文编码较为统一,都采用ASCII编码或可以兼容ASCII编码(即编码表的前127位与ASCII编码一直,常见的各种编码,包括Unicode编码都是如此)。也就是说,稳赢字母、阿拉伯数字、稳赢的各种符号,在不同编码下的码值(Code Point)基本是一样的,比如字母A,起码值总是41;中文的情况则不同,常见的中文编码有GB18030(也就是CP54936,主要是在Windows平台下使用。早期是GBK,也就是CP936,如今采用的GB18030与GBK是兼容的,考虑到大家习惯说“GBK编码”,下文也采用“GBK编码”的说法)和Unicode(主要用于Linux/UNIX、Mac OS)两种,同一个中文字符在两种编码下的码值并不相同。比如“发”,在GBK编码下的码值为b7a2,而在Unicode下其码值为53d1(根据惯例,Unicode字符一般即为\uhex的形式,其中hex是码值的十六进制表示,所以“发”的Unicode记法就是\u53d1).
为方便下面的讲解,这里先约定两种提法:
ASCII字符,即ASCII编码表中的字符(也就是码值在0 ~ 127之间的字符,不包括扩展ASCII字符),每个字符用一个字节表示。常见的英文字符和半角标点符号,都属于ASCII字符。
非ASCII字符,即ASCII编码表之外的字符,在本书中指多字节字符。中文字符属于“非ASCII字符”,它们在GBK编码中一般占用2个字节,在UTF-8编码中占用3个字节。常见的Unicode编码是UTF-8,它是Unicode的一种存储格式,UTF-16也是一种存储格式。无论是UTF-8还是UTF-16,同一字符的Unicode编码是不变的,只是存储时的变现形式不同。比如“发”的码值53的,但以UTF-8编码保存时占用3个字符,分别是e5 8f 91,保存为UTF-16编码时占用用2个字符,分别53 d1。
正则表达式——Unicode的更多相关文章
- 正则表达式——Unicode 属性
每一个 Unicode 字符,除了有 Code Point 与之对应外,还具体其他属性,在正则表达式中常用到三种 Unicode 属性: Unicode Property.Unicode Scri ...
- 正则表达式——Unicode 匹配规则
一般来说,数字字符解释[0-9],单词字符就是[0-9a-zA-Z_],空白字符则包括空格.回车等字符,但这是 ASCII 编码中的情况,在 Unicode 编码中并非如此. 因为包括了多种语 ...
- 正则表达式——Unicode 属性列表
7.7.1 Unicode Property 每个 Unicode 字符都只能属于一个 Unicode Property.所有的 Unicode Property 共分为7大类,30小类.大类的名 ...
- ES9新内容概括
本文主要介绍ES2018 新出的一些特性 1.异步迭代 允许 async/await 与 for-of 一起使用,以串行的方式运行异步操作,达到异步函数的迭代效果. async function pr ...
- Unity3D安卓程序中提示窗与常用静态方法封装
Unity3D/安卓封装SDK常用方法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 IO -- - ...
- 细解JavaScript ES7 ES8 ES9 新特性
题记:本文提供了一个在线PPT版本,方便您浏览 细解JAVASCRIPT ES7 ES8 ES9 新特性 在线PPT ver 本文的大部分内容译自作者Axel Rauschmayer博士的网站,想了解 ...
- ES6、ES7、ES8、ES9、ES10
ES6新特性(2015) ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以ES6中的特性比较多.在这里列举几个常用 ...
- ES6标准入门(第三版).pdf----推荐指数⭐⭐⭐⭐⭐
链接: https://pan.baidu.com/s/13RHsyTMNx7s1oMqQeYCm3Q 提取码: ikg3 -------------------------------------- ...
- ES6、ES7、ES8、ES9、ES10新特性
ES6新特性(2015) ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以ES6中的特性比较多. 在这里列举几个常 ...
随机推荐
- KVM虚拟化网卡管理
brctl常用命令 查看当前虚拟网桥状态 brctl show 添加一个网桥 addbr 删除一个网桥 delbr 添加网口 addif 删除网口 delif VALN LAN 表示 Local Ar ...
- 四、Ubuntu16.04下TestLink的部署【测试管理必备工具】
TestLink部署和使用方法 TestLink是一个基于Web的开源测试和需求管理工具.该应用程序提供测试规范.测试计划和执行,报告,需求规范以及与知名的bug跟踪器协作. 特征 l 需求管理 - ...
- public class Ex2
写出输出的结果 A. 10 2 3 4 5B. 1 2 3 4 5C. 10 2 3 4 5 0 0 0 0 0D. 1 2 3 4 5 00 0 0 0 package com.yirose.jav ...
- 记录手机端h5页面碰到的一些问题
关于input光标在手机端偏移 问题根本:不要使用line-height垂直居中. 解决方法:可直接定义height,然后高度由上下padding值撑开. 移动端清除input光标 ios input ...
- 使用纯注解方式实现账户的CRUD
1 需求和技术要求 1.1 需求 实现账户的CRUD. 1.2 技术要求 使用Spring的IOC实现对象的管理. 使用QueryRunner作为持久层的解决方案. 使用C3p0作为数据源. 2 搭建 ...
- Flask【第10篇】:自定义Form组件
自定义Form组件 一.wtforms源码流程 1.实例化流程分析 1 # 源码流程 2 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中: ...
- puppet运维自动化之用户管理
系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户 ...
- Vue.js 动态为img的src赋值
在vue中动态给src赋值绑定图片会显示不出来 动态添加src被当做静态资源处理了,没有进行编译 解决方法: 1.用网络地址 把图片放在cdn或自己的服务器上,把网络地址存在imgUrl里,然后直接& ...
- css---一个大div中套左右两个div,如何让最高的把最低的撑开?且把父级撑开呢?
到最后实现了效果,但是在理论上感觉还是很牵强,如果哪位大神有方法,请评论指出哦 Html: css:
- python 从入门到实践 第三章
在第3章,你将学习如何在被称为列表的变量中存储信息集,以及如何通过遍历列表来操作其中的信息 写注释 # 代码越长 标识好代码的重要性 越来越重要要求习惯:在代码中编写清晰,简洁的注释开始研究更复杂的主 ...