python-字符编码1

python-字符编码1

字符编码应用于字符串和文本文件类型。字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。

字符编码这个知识点的典型特征就是理论多、结论少,但对于开发而言只需要记住结论即可

一.知识储备

1.大核心硬件

(1)软件运行前,代码及其相关数据都是存在在硬盘中

(2)任何软件的启动都是将数据从硬盘中读入内存,然后cpu从内存中取出指令执行

(3)软件运行过程当中产生的数据最先都是存放在内存当中的

2.文本编译器读取文件内容的流程

阶段1:启动一个文件编辑器(文本编辑器如nodepad++,pycharm,word)

阶段2:文件编辑器会将文件内容从硬盘读入内存

阶段3:文本编辑器会将刚刚读入内存中的内容显示到屏幕上

3.python解释器执行文件流程

阶段1:启动python解释器,此时就相当于启动了一个文本编辑器

阶段2:python解释器相当于文本编辑器,从硬盘上将test.py的内容读入到内存中

阶段3:python解释器解释执行刚刚读入的内存的内容,开始识别python语法

4.python解释器和文本解释器的异同

(1)相同点

前两个阶段二者完全一致,都是将硬盘中文件的内容读入内存

python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样

(2)不同点

在阶段3时,针对内存中读入的内容处理方式不同

文本编辑器将文件内容读入内存后,是为了显示或者编辑,根本不去理会python的语法,而python解释器会识别python语法,当功能去执行

二.字符编码介绍

1.什么是字符编码

人类与计算机交互时用的是人类可以读懂的字符,而计算机只能识别二进制,二进制是由01代码组成



翻译的过程必须参照一个特定的标准,该标准称之为字符骗码表,该表上存放的就是字符与数字一一对应的关系。

字符编码中的编码指的是翻译或者转换的意思,即将人能理解的字符翻译成计算机能识别的数字

输入一个字符,计算机将翻译成计算机识别的数字,再将这个数字翻译成输入的字符

上------------>翻译------------->010101------------->翻译------------->上

三.字符编码发展史

第一阶段:一家独大

现代计算机起源于美国,所以最先考虑仅仅是让计算机识别英文字符,于是诞生了ASClI表

ASCII表的特点:

1、只有英文字符与数字的一一对应关系

2、一个英文字符对应1Bytes,1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符



ASCII表只支持英文字符串

ASCII表采用8位二进制数对应一个英文字符

第二阶段:天下大乱

为了让计算机能够识别中文和英文,中国人定制了GBK

GBK表的特点:

1、只有中文字符、英文字符与数字的一一对应关系

2、采用8位二进制数对应一个英文字符

3、采用16位二进制数对应一个中文字符

补充说明:

1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符

2Bytes=16bit,16bit最多包含65536个数字,可以对应65536个字符,足够表示所有中文字符

每个国家都各自的字符,为让计算机能够识别自己国家的字符外加英文字符,各个国家都制定了自己的字符编码表

Shift_JIS表的特点:

1、只有日文字符、英文字符与数字的一一对应关系

Euc-kr表的特点:

1、只有韩文字符、英文字符与数字的一一对应关系

此时,美国人用的计算机里使用字符编码标准是ASCII、中国人用的计算机里使用字符编码标准是GBK、日本人用的计算机里使用字符编码标准是Shift_JIS



文本文件内容全都为字符,无论存取都是涉及到字符编码问题

1、存文本文件

人类通过文本编辑器输入的字符会被转化成ASCII格式的二进制存放于内存中,如果需要永久保存,则直接将内存中的ASCII格式的二进制写入硬盘

2、读文本文件

直接将硬盘中的ASCII格式的二进制读入内存,然后通过ASCII表反解成英文字符

阶段三:分久必合

unicode(内存中统一使用unicode):

1.兼容万国字符

与万国字符编码都有对应关系

2.采用16(16bit=2Bytes)位二进制数对应一个中文字符

个别生僻字会采用4Bytes,8Bytes

unicode表:

人类字符----------------unicode格式数字

字符编码不可以互相转,老的字符编码都可以转成unicode,但是不能通过unicode互转

Read more

【FPGA】Vivado 保姆级安装教程 | 从官网下载安装包开始到安装完毕 | 每步都有详细截图说明 | 支持无脑跟装

【FPGA】Vivado 保姆级安装教程 | 从官网下载安装包开始到安装完毕 | 每步都有详细截图说明 | 支持无脑跟装

安装包下载:Xilinx_Vivado Download Link(下好后可直接安装) 目录 (有安装包后,可直接跳转至 Step5,免得去官网下了,比较麻烦) Step1:进入官网 Step2:注册账号 Step3:进入下载页面 Step4:下载安装包 Step5:安装 Step6:等待软件安装完成 安装完成 Step1:进入官网 ① 我们可以选择在 XILINX 官网下载其公司旗下的产品 Vivado 🔍 官网地址:www.xilinx.com           (英文)www.china.xilinx.com  (官方中文网站) 👉 点击直达:Xilinx - Adaptable. Intelligent | together we advance_    (英文)

By Ne0inhk

养龙虾-------【多openclaw 对接飞书多应用】---多个大龙虾机器人群聊

🚀 MiniMax Token Plan 惊喜上线!新增语音、音乐、视频和图片生成权益。邀请好友享双重好礼,助力开发体验! 好友立享 9折 专属优惠 + Builder 权益,你赢返利 + 社区特权! 👉 立即参与:https://platform.minimaxi.com/subscribe/token-plan?code=2NMAwoNLlZ&source=link 最近玩了下大龙虾,对接飞书后玩的不亦乐乎,妥妥滴私人助理。但是也萌发一个想法,多个机器人可以自己聊天吗?那会不会把世界给聊翻了。于是我马上搜寻各个配置方式,却是找到了可以配置多个机器人得群聊方式。 1.首先创建多个应用添加机器人,分别和部署得多个openclaw系统对接具体对接参考我写的【 养龙虾-------【openclaw 对接飞书、钉钉、微信 】—移动AI助理】 2.手工拉群并添加机器人: 3.把群id配置进各个龙虾配置文件里面 接下来就可以群聊了

By Ne0inhk
【OpenHarmony】鸿蒙Flutter智能家居应用开发实战指南

【OpenHarmony】鸿蒙Flutter智能家居应用开发实战指南

鸿蒙Flutter智能家居应用开发实战指南 概述 智能家居是鸿蒙全场景生态的重要应用场景。本文讲解如何基于鸿蒙Flutter框架,开发一套完整的智能家居应用,实现设备发现、控制、场景联动、语音交互等核心功能。 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 系统架构设计 整体架构图 ┌────────────────────────────────────────────────────────────┐ │ 用户交互层 (Flutter) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 设备控制面板 │ │ 场景编排 │ │ 语音交互 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └───────────────────────┬────────────────────────────────────┘ │ RPC/事件总线 ┌────────────────────

By Ne0inhk
nginx - 实现域名跳转的几种方式

nginx - 实现域名跳转的几种方式

Nginx 实现域名跳转的几种方式 文章目录 * Nginx 实现域名跳转的几种方式 * 1. 301 永久重定向(推荐 SEO 场景) * 2. 302 临时重定向(推荐活动页/短链场景) * 3. 强制 HTTPS 跳转 * 4. 去掉或强制 `www` * 去掉 `www` → 跳到裸域名 * 强制加 `www` * 5. 正则匹配更复杂的跳转 * 6. 总结 * 7. 常见问题 * 1. 301 和 302 的区别 * 2. `return 302 https://event.new.com$request_uri;` 是否是固定写法 * 举个例子

By Ne0inhk