[oeasy]python0 113_字符编码_VT100控制码_iso_8859_1_拉丁字符_latin

2023-10-17 03:59

本文主要是介绍[oeasy]python0 113_字符编码_VT100控制码_iso_8859_1_拉丁字符_latin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拉丁字符

回忆上次内容

  • 上次回顾了字型编码的进化过程
    • 7-bit 的 点阵字库
    • 终于让 字母、数字、标点 明确了字型
  • 但是 7-bit 的 ascii中
    • 没有法文字符的位置

图片描述

  • 如果扩展位为1
    • 不同的计算机厂商
      • 有各自不同的 扩展方式
  • 这噩梦
    • 比法语不兼容 更可怕!😱
    • 这以后 编码就越来越多了
    • 互认对方为乱码
  • 法文字符
    • 完全被 不同的字符集
      • 直接 变成乱码
  • 这可怎么办呢?🤔

那可是法国啊!

  • 法国毕竟 曾是 与英国全球争霸的对手

图片描述

  • 美国 从英国独立 最早靠的
    • 还是 富兰克林来法国
      • 找路易十五要的 军事和经济支持
    • 现在美国字符集ascii里面
      • 没有法文字符的位置?
  • 伤心的法国人 不由得回忆起那场海战

特拉法尔加海战

  • 如果当年法国拿破仑选用富尔顿的火轮船
    • 那特拉法尔加海战会被改写
  • 如果 结局改写
    • 美利坚 可能是 法国殖民地

图片描述

  • 英国应该 无法和法国 在海上争霸
    • 最终 世界语言是法语
    • 美国 入学考的不是TOEFL
    • 而是 TOFFL

图片描述

  • 再往前
    • 英国就更非主流了

征服者威廉

  • 法兰克王国 诺曼地区的公爵威廉
    • 跨过英吉利海峡
      • 成了 不列颠岛的征服者威廉

图片描述

  • 不列颠岛 北高南低
    • 挡住北边的冷风
    • 非常 适合生存
    • 从来就 不乏 征服者

英伦

  • 伊比利亚、凯尔特、罗马、昂撒、丹麦、法国诺曼都曾征服不列颠
  • 英格兰岛的名字 来自于 盎格鲁部落
    • 当时昂撒 是 凯尔特人 搬来的救兵
    • 假途灭虢 占了这个南方平坦的宝岛
    • 说 这是我们盎格鲁人的岛
      • England
    • 盎格鲁岛人说的语言
      • English

图片描述

  • 英国的文化 本就是 多民族、宗教杂糅出来的一个混合体
    • 从不希望 欧洲大陆出现强大的帝国
    • 那就会 威胁到岛上的安全
  • 英国对于 欧洲各国制衡之术
    • 又被后来的美国 学去制衡 整个欧亚大陆
  • 不过说到底 所有文化的开局 都是从非洲走出来的
    • 最最开始都是 从无机物 偶然变成 有机物
  • 但是 电子信息化到数字化 是一个新的大环境
    • 法文字符 的编码方式 会统一 吗?
  • 先回顾 ASCII的基本情况

ascii

  • 目前最熟悉的编码是 ascii编码
    • 包括控制字符、大小写字符、数字、符号
  • 字节中 第 1 位 为 0
    • 后 7 位
      • 0x00-0x7F
    • 这里面 没有法文字符

图片描述

  • 但如果第 1 位是 1
    • 又会如何呢?

尝试输出

  • 找到一个数字 0xa7
    • 找到 数字对应的字符
    • 这是个 章节符号

图片描述

  • 也可以形成
    • 一个闭环

闭环

  • 这规律
    • 和ascii 一样的
    • 也就是说 这个字节里面除了 ascii 的 128 个字符之外
      • 还可以 有一定的
      • 还可以 对应更多字符

图片描述

  • 等于是 把ascii编码 给扩展了

编码格式

  • 跨国跨语言的事情 怎么办?
    • 还是要 看用户数量

图片描述

  • Dec公司的 VT100
    • 质量 过硬
    • 价格 实惠
    • 终成 新一代机皇

机皇的影响力

  • 新的终端
    • 就必须兼容VT100
    • 包括VT100中 一项新功能

图片描述

  • 这CSI
    • 不就是 控制序列\e 吗?

事实上的标准

  • VT100 是当时 最流行的终端
    • 不但支持 常用的转义字符
    • 还创造出 VT100控制码
\033[0m		// 关闭所有属性
\033[1m		// 设置为高亮
\033[4m		// 下划线
\033[5m		// 闪烁
\033[7m		// 反显
\033[8m		// 消隐
\033[nA		// 光标上移 n 行
\033[nB		// 光标下移 n 行
\033[nC		// 光标右移 n 行
\033[nD		// 光标左移 n 行
\033[y;xH	// 设置光标位置
\033[2J		// 清屏
  • 这就是 后来CSI的雏形 😁
    • Control Sequence Introducer
  • 有了这个 就可以控制
    • 字体
    • 位置
    • 颜色
  • 慢慢 DEC的VT100标准
    • 就成了 计算机终端的标准

ISO组织

  • 总部在 瑞士日内瓦湖的 ISO组织
    • 负责 跨国跨公司的标准化
    • 在Dec所用 编码格式的基础 上
      • 发展出 iso-8859-1 字符集
  • 为什么 选择Dec的 编码格式?
    • 因为 VT100是 当时的 一代机皇
    • 用户数量 就是 事实上的标准

图片描述

  • 根据 dec公司的 字符集
    • 生成了 扩展ascii字符集(charset)
  • 前一半(0-127)
    • 没有动
    • 还是ascii
  • 后一半(128-255)
    • 换成了 西欧北欧各国拉丁字符
  • 这个 编码
    • 叫做 iso-8859-1
    • 也叫做 latin-1
  • latin-1覆盖的 范围如何呢?

覆盖范围

  • 西欧北欧语族都可以覆盖到
    • 拉丁人的罗曼语族(法意西葡)
    • 日耳曼人的日耳曼语族(瑞丹挪德冰)
    • 凯尔特人的盖尔语族(苏爱)

图片描述

latin-1

  • 拉丁语(法意西葡)我们好理解
    • 拉丁正宗

图片描述

  • 北欧 这么多国家
    • 为什么 都使用拉丁字符呢?
  • 北欧 不是有 自己的一套符文系统吗?

图片描述

  • 日耳曼语族 不是和 拉丁语族 并列的吗?

总结

  • 这次回顾了 非ascii的拉丁字符编码的进化过程
    • 0-127 是 ascii 的领域
  • 西欧、北欧语言 大多使用 拉丁字符
    • 由iso组织 制定iso-8859-1

图片描述

  • 北欧 原来 不是有自己的卢恩文字(Runes)符文系统吗?

  • 我们下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

这篇关于[oeasy]python0 113_字符编码_VT100控制码_iso_8859_1_拉丁字符_latin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/222791

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

form表单提交编码的问题

浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。