Skip to content

Latest commit

 

History

History
311 lines (225 loc) · 7.7 KB

390-820483-[趣味拓展]西里尔字符集_Cyrillic_俄文字符编码_KOI_8859系列_1252字符集.sy.md

File metadata and controls

311 lines (225 loc) · 7.7 KB
show version enable_checker
step
1.0
true

各语言字符编码

回忆上次内容

  • 罗马帝国 分成了东西罗马
    • 核心的位置 是 Christ 标志
      • xp
      • 后来发展成为了十字架

图片描述

  • 这个 西里尔字符
    • 应该 如何编码呢?🤔

俄语字符

  • 俄语有自己的字母表顺序

图片描述

  • 和英文有些字符重复

三种字符比较

  • 回忆古希腊字符
    • 古希腊的雕塑、哲学、医学等文化
    • 进入了罗马文明
  • 马其顿王国 被罗马帝国征服后
    • 希腊半岛的军事力量
    • 臣服于 意大利半岛
    • 拉丁字符 成为新的替代
  • 向西边
    • 凯撒 发现了 高卢旁边 的岛屿
      • 并且后续 罗马执政官 征服了这个岛
      • 占据了温泉
    • 又在 坎特伯雷大教堂
      • 传播 拉丁文的圣经
    • 使得 拉丁字符 进入英文

图片描述

  • 向东边
    • 西里尔文字 收到 希腊文字影响
    • 文化 也受到 罗马、希腊文化影响
  • 他们之间的字符可以通用吗?

编程

greek = set("ΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκ∧λΜμΝνΞξΟο∏πΡρ∑σΤτΥυΦφΧχΨψΩω")
english = set("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz")
cyrillic = set("АаВбВвГгДдЕеЖжЅѕЗзИиЙйІіКкЛлМмНнОоПпРрСсТтУуЎўОУоуФфХхѠѡЦцЧчЩщЏџЪъѢѣЮюѮѯѰѱѲѳѴѵ")
print("greek and english",greek & cyrillic)
  • 结果

图片描述

  • 希腊字符和英文字符长的类似的也有不同的序号
  • 可以明确这个序号吗?

明确序号

print("greek A ord",ord("Α"))
print("english A ord",ord("A"))
print("cyrillic A ord",ord("А"))
  • 结果

图片描述

  • 如果抛开序号问题
  • 只看字型呢?
  • 他们之间有什么关系呢?

音形义

  • 西方字符 也是一个 音形义的结合体

图片描述

  • 后来意义主要由字符组成的单词来表示
  • 字符主要代表音和型
  • 同样类型的写法 却被 分配到不同的 字符集
    • 英文、希腊、西里尔
  • 如果分配到同一个字符集会如何呢?

土耳其语

  • 土耳其语字符只有上述字符
    • 不在拉丁字符集中
* ğ – \u011f
* Ğ – \u011e
* ı – \u0131
* İ – \u0130
* ö – \u00f6
* Ö – \u00d6
* ü – \u00fc
* Ü – \u00dc
* ş – \u015f
* Ş – \u015e
* ç – \u00e7
* Ç – \u00c7
  • 这样就导致土耳其语

    • 没有自己独立的字符集
  • 东罗马帝国 当时就是

    • 被奥斯曼帝国 打趴下的
    • 没想到
      • 西里尔文字有自己的一套字符集
      • 但是 土耳其语 却没有
  • 这 西里尔字符

    • 后来被 俄语所继承
    • 甚至 还差点成为了我们的汉语拼音字形

汉语拼音

  • 当时 前苏联 是我国老大哥
    • 就连 外语学的 都是俄语
    • 也曾计划 用西里尔字母 作为汉语拼音字母

图片描述

  • 后来 中苏关系紧张
    • 西里尔拼音方案 搁浅
    • 最后 将拉丁字符 定为 汉语拼音 字符
  • 计算机时代
    • 西里尔文字 应该如何编码呢?

KOI-7

  • 1981年苏联做了个 7-bit 的西里尔字符集
    • KOI-7
    • 相当于ascii

图片描述

  • 西里尔字符 有8-bit的版本 吗?

KOI-8

  • 1987年制作了 8-bit 的西里尔字符集
    • KOI-8
    • 相当于latin-1

图片描述

  • 去掉了$(美元符号)
    • 但是字节序 是按照latin的字母顺序
    • 而不是 西里尔字符的字母顺序
    • 西里尔字符 后来如何了呢?

欧洲各地字符集

  • 西里尔字符后来落实在
    • iso-8859-5

图片描述

  • 其他 各种书写文字 也仿照iso-8859-1方式
    • 只都改后一半
  • 8859 就这样分出 16 个部分
    • 每种拼音文字 有 自己的字符集

阿拉伯语字符集

  • 这些字符集的大小 都是1个字节
    • 但是 从128到255号字符
    • 彼此 都 不一致

图片描述

  • 比如 阿拉伯语字符集

希腊语 字符集

  • 但是不能 同时显示
    • 阿拉伯语和希腊语

图片描述

  • 就导致了
    • 同一个字节
    • 不同编码方式
    • 对应不同的字符

不同编码解释

  • 如果同样一个字节 b"\xa1"

图片描述

  • 在 不同编码字符集下
    • 对应的字符 是不同的

图片描述

  • 在iso-8859 这套方案 中
    • 同一个字节 通过不同的解码方式
    • 可以对应 不同的字符
  • 导致面对字节序列的时候
    • 不但要知道
      • 字节的状态
    • 更要知道
      • 字节所使用的编码方式

编码方式

  • 计算机 在显示文字的时候
    • 不但要知道 具体的 字节内容 是什么
    • 更要明确 这些字节使用的编码方式 是什么

图片描述

  • 解铃 还需 系铃人
    • 否则 就会出现乱码
  • 扩展区的
    • 反而稳定
      • 基础区的ascii字符

图片描述

  • 26个小写拉丁字母表示
    • 稳!

缘起性空

  • 7-bit 没有满
    • 所以 字节中 还能容纳 其它的字符
    • 这样 ascii 就成为 各种编码的基础
    • 位置更稳了
  • 英文字符 在哪里 都能用
    • 就更成了 世界级字符 了

图片描述

  • 满招损 谦受益
    • 有之以为利 无之以为用
    • 性空才能缘起
    • 留白才有意境
    • 海纳百川
      • 是因为够低

环境

  • 当时的环境 是
    • 大型机 逐渐没落
    • 个人电脑 兴起
  • 微软 成为 ibm兼容机时代最大的获利者
    • 从dos到windows
    • 几乎 一统PC

图片描述

  • iso8859系列 字符集
    • 又是 如何被微软落实的 呢?

选择

  • 在iso-8859-1的基础上

图片描述

  • 微软实现并扩展了这个标准
    • 把灰色区域填充了一些符号

图片描述

  • 微软的window-1252编码
    • 支持了 西欧、北欧拉丁字符
    • 以牺牲 其他地区字符的方式
    • 某种程度 终结了 拼音字符的编码大战
  • 可是 世界上的字符
    • 除了 拼音字符
    • 还有 象形文字
      • 而且 数量巨大

总结

  • 这次回顾了西里尔字符的编码过程
    • KOI-7
    • KOI-8
  • ISO-8859 系列进行总结
    • 字符扩展 ascii 共 16 种
    • 由iso组织制定
      • 从 iso-8859-1
      • 到 iso-8859-16
    • 无法 同时显示
      • 俄文和法文
  • 世界上的字符
    • 除了 拼音文字 之外
    • 还有 象形文字

图片描述

  • 这个 象形文字 怎么来的呢?🤔
    • 如何编码呢?🤔
  • 我们下次再说!👋