[oeasy]python0129_unicode中文字符序号十三道大辙_字符编码解码

boyanx15小时前技术教程2

unicode 中文字符分类 回忆上次内容

  • 字符集
  • 从博多码
  • ascii
  • 再到 iso-8859 系列
  • 各自割据


  • 如何把世界上各种字符统进行编码
  • unicode顺势而生不断进化
  • 不过字符总量超过了65536
  • 每个汉字都有位置


添加图片注释,不超过 140 字(可选)

  • 所有汉字里面第一个汉字是什么呢?

分布

添加图片注释,不超过 140 字(可选)

  • 第一个字就是一

添加图片注释,不超过 140 字(可选)

  • 一切本是混沌
  • 河出图洛出书
  • 一划开天
  • 分出阴阳


  • 一生二
  • 太极生两仪


  • unicode把一放在中文第一个
  • 感受先人创建文明之源


后面的汉字

  • 分在几个 blocks 里面
  • 最常用的在0x4E00-0x9FBF
  • F、B都是16进制的数字就像1、2、3一样
  • 这个范围就是中日韩(CJK)字符的范围


  • 也属于 2个字节 以内
  • 字符数量也很多


添加图片注释,不超过 140 字(可选)

  • 不过由于汉字数量太多
  • 原来给的空间不够用了


新分空间

  • 又给CJK分配了几个扩展空间
  • Extension


添加图片注释,不超过 140 字(可选)

  • 我们 对比一下
  • 原来 \x表示法 和 \u表示法


两种转义

  • 原来ascii字符a可以用\x61表示
  • \x61 对应十六进制的(61)十六进制
  • 占用个字节
  • 使用\x进行转义


  • 现在unicode字符可以用\u4e00表示
  • \u4e00 对应十六进制的(4e00)十六进制
  • 占用个字节
  • 使用\u进行转义


添加图片注释,不超过 140 字(可选)

  • ascii 字符也能用 \u 的方式进行转义

添加图片注释,不超过 140 字(可选)

  • \u必须得4位16进制数
  • 不过这样有点浪费空间和带宽
  • 序号、字节状态和字符是什么关系呢?

关系

添加图片注释,不超过 140 字(可选)

  • 序号、字节状态和字符
  • 这三个东西也构成一个闭环
  • 就像ascii一样

添加图片注释,不超过 140 字(可选)

  • 我们现在再看一下ord和chr的帮助

ord 和 chr

  • ord将字符的unicode编码转化为单字字符串

添加图片注释,不超过 140 字(可选)

  • chr 将[0,0x10ffff] 转化为unicode 单字字符串

添加图片注释,不超过 140 字(可选)

  • 序号是unicode的序号
  • 在[0,127]范围内
  • ascii 和 unicode 重合
  • unicode 兼容 ascii


  • unicode 形成了主流 之后
  • 会吸取周围的小支流


  • 类似的还有办公文档的标准

办公文档的标准

  • dos时代之后
  • win3.1的年代
  • 微软推出了字体处理软件



添加图片注释,不超过 140 字(可选)

  • 金山在wps的基础上推出了盘古系统

添加图片注释,不超过 140 字(可选)

win95之后

  • win95之后
  • 图形用户界面都基于微软的api进行开发
  • 微软自身也有office系列


添加图片注释,不超过 140 字(可选)

  • 客观上
  • 微软也就制定了办公软件的标准


  • 微软office系列
  • 形成了 主流 之后
  • wps、中文之星只能按照去兼容它的格式


  • 失去了定义标准的可能


  • 规则一旦形成
  • 就会对后来的事物产生影响


  • 其实汉字
  • 也有自己的一套归类规则


按照发音来归类

  • 可以按照发音来归类
  • 甚至可以生成语音...


添加图片注释,不超过 140 字(可选)

  • 还可以进一步归类吗?

韵母归类

  • 押韵助手
  • https://yayun.la/


添加图片注释,不超过 140 字(可选)

  • 可以用来找到押韵词汇

十三道大辙

  • 字典用的是拼音排序
  • 按照声母的顺序
  • 大辙按的是韵母


  • 这样就可以更方便找相同韵母的汉字了

大辙

对应十八韵

一发花

十八韵的一麻

二梭波

十八韵的二波三歌

三乜斜

十八韵的四皆

四衣欺

十八韵的五支、六儿、七齐

五灰堆

十八韵的八微

六怀来

十八韵的九开

七姑苏

十八韵的十姑

八衣欺

十八韵的十一鱼

九由求

十八韵的十二侯

十遥条

十八韵的十三豪

十一言前

十八韵的十四寒

十二人臣

十八韵的十五痕

十三汪洋

十八韵的十六唐

十四中东

十八韵的十七庚和十八东

  • 四、八其实可以合成一道大辙
  • 如果要双押
  • 就得找词组韵母一致的
  • 其实都可以把所有的词归类
  • 然后制作一个押韵神器


  • 很多各种各样的发音
  • 也被所谓的韵
  • 进行分类



  • 词是由字组成的
  • 词是如何编码进入计算机的呢?


编码解码

  • 两个汉字的unicode编码
  • 占用四个字节

添加图片注释,不超过 140 字(可选)

  • 已知汉字,得到 unicode 值,叫做编码
  • 过程为 encode


  • 已知 unicode 值,得到汉字,叫做解码
  • 过程为 decode


encode decode

  • 把 str 字符串 encode 编码 为 bytes 字节序列

添加图片注释,不超过 140 字(可选)

  • 把 bytes 字节序列 decode 解码 为 str 字符串
  • 编码和解码是互为逆运算的

添加图片注释,不超过 140 字(可选)

  • 绕了一圈又回来了

ascii 和 eval

  • ascii 得到字符串的unicode编码状态

添加图片注释,不超过 140 字(可选)

  • eval 得到编码的字符串状态
  • 这两个也是逆运算
  • 好像也可以然绕一个圈
  • eval应该如何理解呢?

eval

  • help(eval)

添加图片注释,不超过 140 字(可选)

  • eval
  • 意思是evaluate衡量
  • 是一个内置的函数
  • __builtins__这个module里面


  • 根据全局变量和局部变量的值进行衡量
  • 这里衡量的是
  • 按unicode形式的编码好的字符串



  • 实际编码的时候是按照什么排序的呢?

unicode 汉字排序

添加图片注释,不超过 140 字(可选)

偏旁部首检字法

添加图片注释,不超过 140 字(可选)

  • 禾木字旁的放到一起

添加图片注释,不超过 140 字(可选)

  • 按照偏旁的次序排列
  • 其实偏门的汉字很多的


  • 偏门的汉字
  • 形成了 小众火星文


火星文

  • 在火星文转化器中
  • 如果爱,请深爱
  • 洳淉嬡,埥堔嬡。


  • 团长,我从此就是杀马特的人了,爱你呦
  • 團萇,莪苁泚僦湜摋骉特哋亾孒,嬡沵呦。


  • 爱我不是你的错
  • 嬡莪芣湜沵哋措


  • 你是我的翅膀
  • 妳ィ是俄棏翄艕


  • today is my birthday
  • 特嘚孓麥波斯嘚



添加图片注释,不超过 140 字(可选)

  • 这真的有点亚文化
  • 用这个问人工智能
  • 也会晕吧?!



火星文输入法

  • 其实火星文就是把常用汉字序号
  • 和不常用的汉字的序号
  • 对应了起来
  • 文字转化就是找到序号的映射



添加图片注释,不超过 140 字(可选)

  • 也是一种 加密方法
  • 你用这语料进行深度学习
  • 学出来也是一头雾水



总结

  • 中文字符可以有各种分类方法
  • 声母
  • 拼音检字法


  • 韵母
  • 合辙押韵的分类


  • 偏旁部首
  • 实际上unicode的排序方法



添加图片注释,不超过 140 字(可选)

  • 我们以前勇闯地下城时候获得了一把屠龙宝刀
  • 给他镶上了宝石
  • 这宝石应该如何理解?


添加图片注释,不超过 140 字(可选)

  • 我们下次再说!
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython

相关文章

为什么Python里遍历字符串比列表慢?3个底层原因揭秘

用字符串处理文本时,你可能正悄悄浪费性能。在日常Python开发中,我们经常需要遍历字符串和列表。但你是否注意过,当处理海量数据时,遍历字符串的速度明显比列表慢?这背后隐藏着Python设计的深层逻辑...

Windows中CMD最全命令行(cmd命令行在哪)

CMD命令:开始->运行(或者Windows+R)->键入cmd或command(在命令行里可以看到系统版本、文件系统版本)CMD命令锦集1. gpedit.msc-----组策略2. s...

你只会用 split?试试 StringTokenizer,性能可以快 4 倍

我们都知道,分割字符串要使用 String 的 split() 方法,split 方法虽然深入人心,使用也简单,但效率太低!其实在 JDK 中,还有一个性能很强的纯字符串分割工具类:StringTok...

Python字符串对齐神技!4种方法让你的输出瞬间专业10倍

告别杂乱文本!掌握center/ljust/rjust/zfill四大对齐技巧,代码输出整洁如印刷品 字符串对齐的核心价值# 为什么需要对齐? print("商品".ljust(10)...

C#字符串处理黑科技:从O(n^2)到O(n),性能提升100倍!

在C#编程中,字符串处理是极为常见的操作。从简单的文本拼接,到复杂的文本解析与匹配,字符串处理的性能优劣对程序整体效率有着深远影响。许多开发者可能未曾察觉,一些看似常规的字符串处理方式,实际上隐藏着严...

Python字符串终极指南!单引号、双引号、三引号区别全解析

导语: Python中字符串(str)是最核心的数据类型!无论你是输出"Hello World"还是处理用户数据,都离不开它。今天彻底讲清字符串的三大定义方式及其核心区别,新手必看!一...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。