[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 字(可选)


目录
相关文章
|
2月前
|
人工智能 Shell 开发工具
[oeasy]python062_在python中完成输入和输出_input_print
本文介绍了在Python中使用`input()`和`print()`函数完成输入和输出操作的基础知识。通过编写简单的程序,如问候用户和统计苹果数量,演示了如何添加提示信息、处理用户输入并输出结果。同时,回顾了上一次课程内容,包括`input`函数的参数和提示词的使用。文中还展示了如何在vim编辑器中编写和运行Python代码,并对vim和shell的基本操作进行了总结。最后提供了相关学习资源链接,方便读者进一步学习。
137 66
|
4天前
|
Shell Python
[oeasy]python072_名字空间是怎么玩的_from_import_as_导入_namespace
本文介绍了Python中名字空间和模块导入的使用方法。主要内容包括: 1. **回忆上次内容**:回顾了之前导入系统模块(如`__hello__`、`time`)和自定义模块(如`my_file`),并介绍了如何导入和使用模块中的变量。 2. **从shell开始**:展示了如何在命令行中编辑和切换文件,以及如何通过`import`语句引入模块。 3. **修改oeasy.py**:演示了如何通过`import my_file`导入模块,并将模块中的`pi`赋值给本地变量`pi`。 4. **locals()函数**:解释了如何使用`locals()`查看当前作用域内的本地变量及其值。
23 8
|
2天前
|
Python
[oeasy]python073_下划线在python里是什么含义_内部变量_私有变量_系统变量
本文回顾了Python中从模块导入变量和函数的方式,重点讨论了避免本地变量名冲突(local name clashes)的方法。通过`from module import variable as alias`可以为导入的变量重命名,防止冲突。根据PEP8规范,建议避免使用`from module import *`,因为它会导入模块中所有非下划线开头的变量,容易引发冲突。下划线在变量命名中有特殊含义:单个前导下划线表示内部变量,后置下划线用于避免与关键字冲突,双下划线前后包围表示系统变量。总结了下划线的不同用法及其作用。下次将继续探讨更实用的编程技巧。
18 3
|
1月前
|
人工智能 Shell 开发工具
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
56 32
|
13天前
|
人工智能 自然语言处理 Shell
[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder_双下划线
本文介绍了如何在Python中导入模块及其作用,重点讲解了`__hello__`模块的导入与使用。通过`import`命令可以将外部模块引入当前环境,增强代码功能。例如,导入`__hello__`模块后可输出“Hello world!”。此外,还演示了如何使用`help()`和`dir()`函数查询模块信息,并展示了导入多个模块的方法。最后,通过一个实例,介绍了如何利用`jieba`、`WordCloud`和`matplotlib`模块生成词云图。总结来说,模块是封装好的功能部件,能够简化编程任务并提高效率。未来将探讨如何创建自定义模块。
33 8
|
11天前
|
缓存 Shell 开发工具
[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy
本文介绍了 Python 中模块的导入与自定义模块的创建。首先,我们回忆了模块的概念,即封装好功能的部件,并通过导入 `__hello__` 模块实现了输出 "hello world!" 的功能。接着,尝试创建并编辑自己的模块 `my_file.py`,引入 `time` 模块以获取当前时间,并在其中添加自定义输出。
21 4
|
1月前
|
数据库 Python
[oeasy]python066_如何捕获多个异常_try_否则_else_exception
本文介绍了Python中`try...except...else`结构的使用方法。主要内容包括: 1. **回顾上次内容**:简要复习了`try`和`except`的基本用法,强调了异常处理的重要性。 2. **详细解释**: - `try`块用于尝试执行代码,一旦发现错误会立即终止并跳转到`except`块。 - `except`块用于捕获特定类型的异常,并进行相应的处理。 - `else`块在没有异常时执行,是可选的。 3. **示例代码**:通过具体例子展示了如何捕获不同类型的异常(如`ValueError`和`ZeroDivisionError`),并解释了异常处理
54 24
|
3月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
130 80
|
21天前
|
人工智能 数据库 开发者
[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
介绍了 Python 中 `try` 语句的完全体,包括 `try`、`except`、`else` 和 `finally` 子句的使用。通过实例展示了如何捕获异常并输出详细的错误信息,如文件名和行号。特别强调了 `finally` 子句的作用,无论是否发生异常,`finally` 都会执行,常用于清理操作。最后总结了 `try` 语句的四个部分及其应用场景,并简要提及了 Python 社区的决策机制。 #try #except #else #finally
23 1
|
1月前
|
缓存 Shell 开发工具
[oeasy]python064_命令行工作流的总结_vim_shell_python
本文总结了命令行工作流中的关键工具和操作,包括vim、shell和Python。主要内容如下: 1. **上次回顾**:完成了输入输出的代码编写,并再次练习了vim的使用。 2. **shell基础**:介绍了shell环境及其基本命令,如`pwd`、`cd`、`ll -l`等。 3. **Python游乐场**:通过`python3`命令进入Python交互环境,可以进行简单计算和函数调用,常用函数有`help`、`ord`、`chr`等。 4. **vim编辑器**:详细讲解了vim的三种模式(正常模式、插入模式、底行命令模式)及其切换方法,以及常用的底行命令如`:w`、`:q`、`
87 15

热门文章

最新文章