[oeasy]python0128_unicode_字符集_character_set_八卦_星座

简介: [oeasy]python0128_unicode_字符集_character_set_八卦_星座

unicode 回忆上次内容

  • 中国的简体和繁体汉字
  • 字符数量都超级大
  • 彼此还认对方为乱码


  • 如果有一种编码所有的字符都能编进去就好了
  • 中日韩(CJK)
  • 欧洲拼音
  • 梵文
  • 阿拉伯文
  • 卢恩字符
  • 等等等都包括进去


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

  • 能有么?🤔

回顾历史

  • 计算机中只有 01
  • 并且是存储在字节里的
  • 原来只能表示和处理数字
  • 字符无法处理


  • 后来某些二进制数固定下来代表某个字符
  • 形成了字符集
  • 从博多码(5bits)到 BCDIC(6bits)
  • 再到 EBCDIC码(8bits) 最后统一于 ascii


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

  • 但是 各国家和地区
  • 都有 自己的文字
  • 这一领域 没有 统一的标准


  • 所以每个国家和地区
  • 都制定自己的编码标准
  • 想要同时显示 法语字符和西里尔字符 是不可能的


  • 同样字节状态 在不同编码格式里 代表不同的字符
  • 都认为对方是乱码
  • 彼此不兼容


  • 编码方式有上百种之多
  • 互为乱码


分久必合

  • 无法解决的问题背后 可能是机会
  • 1980 年代
  • Xerox(施乐公司) 在 开始尝试一种编码
  • 能融合多语言


  • Xerox 字符集包括
  • 拉丁
  • 阿拉伯
  • 希伯来
  • 希腊
  • 西里尔
  • 中日韩字符



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

  • 这个字符集 1988 年进化为 unicode
  • uni的意思是一


uni

  • uni 来自于
  • unique
  • unified
  • universal
  • unicorn
  • university
  • uniform
  • unit
  • union


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

  • uni-开头的单词都有这个特点

universe

  • universe
  • uni


  • verse
  • 旋转


  • universe
  • 绕着一个东西转的
  • 从一转化而来的



  • 一生二 二生三 三生万物

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

  • 后来日语
  • 将universe翻译成宇宙


  • 宇宙一词 中文以前就有
  • 上下四方曰宇
  • 古往今来曰宙


得一

  • 这个词头计算机领域也有很多很牛的单词
  • unit、unix、unity、unicode


  • 这名字得一了啊
  • 少则得,多则惑,是以圣人抱一为天下式
  • 天得一以清,地得一以宁,神得一以灵,谷得一以盈,万物得一以生,侯王得一而以为正


  • 这个版本叫做 unicode88
  • 是 16 位的 unicode


  • 1989 年
  • Unicode 这个工作组来了一些从大厂来的人
  • 微软和 sun 都来了


  • 1991/1/3 日
  • Unicode 委员会在加州成立


  • 1991 年 8 月
  • unicode 第一卷发布


  • 1992 年 6 月
  • 第 2 卷发布
  • 这里面包含了汉语字符



  • unicode 委员会 形成
  • Adobe, Apple, Facebook, Google, IBM, Microsoft, Netflix 和 SAP SE 等公司的工程师加入


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

  • 字符的全球标准化开始了

基础字符

  • ascii 还是牢牢占据着 0-127 这最关键的位置
  • 紧挨着 ascii 的字符的就是 Latin-1
  • 由 iso-8859-1 西欧、北欧字符集进化而来



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

  • 这其实也 标识出unicode的 编码排序规则
  • 以书写系统为单位
  • 分类和收录



各种拼音文字

  • 比如卢恩字符

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

  • 再去捋一捋
  • 拉丁字符进化过程吧


拉丁字符进化史

发音

词义

埃及圣书体

楔形写法

希腊字符

拉丁字符

alpha

𓃾

𐤀

Αα

Aa

beta

房子

𓉐

𐤁

Ββ

Bb

gīml

棍子

𓌙

𐤂

Γγ

Cc,Gg

dālet

门或者鱼

𓉿

𐤃‎

Δδ

Dd

  • 去看看他们的序号

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

  • 希腊字符比较好找
  • 序号较小


  • 不过希腊字符之前只有大写字母
  • 小写字母怎么来的呢?


小写字母

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

  • 手写画风固定下来后
  • 又被印刷术 再次固定


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

  • 能找到埃及文字的序号吗?

埃及文字

  • unicode 确实给埃及文字排了序号
  • 但是序号很大
  • 而且目前终端没有字型支持



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

  • 字型文件 实现难度不小
  • 实际需求 也不确定


  • 同为 拼音文字的不同书写系统
  • 可能会用到 长得一样的字符
  • 会是一个序号吗?



书写系统

  • 英文字母、拉丁字母、西里尔文字母
  • 都源自希腊文字母 Omicron


  • 不同的书写系统
  • 可能会长相一样的字母
  • 但对应着不同的序号


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

  • 虽然字形一模一样
  • 但是属于三个书写系统
  • 希腊文字母
  • 英文字母
  • 西里尔字母



  • 所以 有不同的序号

持续进化

  • 每个版本都会有些变化
  • 整个编码区域分成若干个 blocks
  • 新版本对于这些 blocks 里面的字符有所增加


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

十二星座

  • 除了字符之外还有很多符号
  • 比如十二个星座


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

  • 集装箱 标准化一旦开始
  • 就会 反过来 约束火车轮船飞机


  • 你要想 加入这个交流的行列
  • 必须先了解相应的接口
  • 从遵守现有的规则开始



unicode时代

  • 新编码unicode的时代来了
  • 他会把一切字符吸收进去


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

  • 同一个文档
  • 可以既有中文
  • 又有日文
  • 还有韩文


  • 一切字符都能正常显示

阴阳太极

  • 易有太极
  • ️☯


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

  • 是生两仪
  • ⚊ 陽 (U+268A) ⚋ 陰 (U+268B)


  • 两仪生四象
  • ⚌(太陽,U+268C)、⚍(少陰,U+268D)、⚎(少陽,U+268E)、⚏(太陰,U+268F)


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

八卦

  • 四象生八卦
  • ☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷


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

  • 如果把
  • ⚊ 陽 (U+268A)当做1
  • ⚋ 陰 (U+268B)当做0


  • 顺序是逆序(递减)
  • 从外而内









  • 八卦有了
  • 可以重卦么?


重卦

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

  • 八八六十四卦

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

  • 看起来都可以玩算卦了
  • 还能做什么呢?

乱来

  • 来随便试一个

print("\u9999")

  • 看看这是什么字?

中日韩字符

  • 中文编码原来是 gbk
  • unicode 现在unicode把中日韩(CJK)当成一组
  • 排序是CJK
  • 位置是unicode.org下方的code chart中找到


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

  • 当然关于排序各有各的排法
  • 中国是中日韩
  • 日本是日中韩
  • 韩国是韩中日


  • unicode组织的CJK显然综合了东亚文化圈的排名
  • 我仿佛听到卡吉玛


所在位置

  • 象形文字数量确实是拼音文字没有办法比的

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

  • 他们听到我们有两万个字母的时候都傻了

融合而来

  • unicode中的文字将
  • 中国汉字
  • 朝鲜汉字
  • 日本汉字
  • 综合起来


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

  • 得到一个汉字
  • 那如果有很多异体字怎么办?

回字的几种写法

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

  • 这些都是异体字
  • 或者叫做通假字
  • 在计算机里是如何的呢?

茴香豆

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

  • 在0x4e00到0x9fff这个范围内
  • 基本一个汉字就只有一种写法

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

总结

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


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


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

  • 所有汉字里面第一个汉字是什么呢?
  • 我们下次再说!👋

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


目录
相关文章
|
5月前
|
人工智能 Python
[oeasy]python082_变量部分总结_variable_summary
本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
229 97
|
5月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
185 63
|
4月前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
344 8
|
5月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
109 20
|
5月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
151 16
|
6月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
185 29
|
5月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
111 17
|
5月前
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
110 2
|
5月前
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
110 7
|
5月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
113 11

热门文章

最新文章

推荐镜像

更多