正则表达式——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中的特性比较多. 在这里列举几个常 ...
随机推荐
- Vue基础第四章 - v-bind指令
1.v-bind指令介绍 在前端开发过程中最常做的事莫过于class类名的绑定与style内联样式的修改,Vue中使用v-bind指令来实现这两个需求,在第二章中给出过简单的示例,下面我们来看一下v- ...
- 用jquery控制表单提交
可以监听表单submit提交事件给form一个id 吧button的type为submit $(form的id).submit(function(){ if(window.confirm('你确定要取 ...
- vue 中一些API 或属性的常见用法
prop 官方解释:Prop 是你可以在组件上注册的一些自定义特性.当一个值传递给一个 prop 特性的时候,它就变成了那个组件实例的一个属性. 通俗点讲就是:prop是父组件用来传递数据的一个自定义 ...
- linux 上搭建sftp服务
原文链接:https://www.cnblogs.com/yanduanduan/p/9046723.html sftp和ftp的区别 FTP是一种文件传输协议,一般是为了方便数据共享的.包括一个FT ...
- mongodb导出导入实例记录
mongodb导出导入实例记录 平时很用mongodb,所以用到了,就需要去网上搜索方法,干脆将自己的实际经历记录下来,方便日后使用. # 大致需求 源库:db_name_mongo 源IP:192. ...
- 【JSOI2014】歌剧表演
题目 分析 我们抽象的认为一些不能互相辨认的人,被分到了一个集合,每当又有一场演出,就将每个出演的演员扔出集合,再将上次在相同集合的分在同一集合. 然后修改被分的集合和被新创建的时间,当集合只有一个数 ...
- Scala传递参数遇到的坑
1.方法中的参数全为val型. 例: def insertMap(map:=>Map[String,Int]):Unit={ map+=("b"->2) //报错 ...
- Python 列表(List)Ⅱ
删除列表元素 可以使用 del 语句来删除列表的元素,如下实例: . 以上实例输http://www.xuanhe.net/出结果: 注意:我们会在接下来的章节讨论remove()方法的使用 Pyth ...
- MongoDB操作:flush()
flush() 是把缓冲区的数据强行输出,(注意不要和frush()刷新混淆了). 主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当 ...
- WebStorm 在 Mac 版本的基本设置,包括 ES6、Node.js、字体大小等
WebStorm 在 Mac 和 win 的设置有区别,便于以后用到快速查找,记之. 要设置先点击 WebStorm 字样如下图: 后点击 Preferences 字样如下图: 设置 es6 语法, ...