字符编码的发展史

三大核心硬件

所有软件都是运行硬件之上的,与运行软件相关的三大核心硬件为cpu、内存、硬盘,我们需要明确三点

计算机内部存储数据都是以二进制数字的形式存储 计算机基于电工作 而电信号只有高低电平两种状态 也就意味着计算机的世界里只能识别两种状态 我们人为的将高电平定义为数字1 低电平定义为数字0

单位换算(重要) 比特位bit(二进制数的个数) 8bit = 1bytes(字节) 1024bytes = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PB

字符编码的研究仅限于文本文件(**)

为什么我们人类在使用计算机输入字符的时候电脑展示是人类能够看懂的字符 而计算机内部只识别01二进制

字符编码表 规定了人类的字符与数字之间的对应关系

字符编码发展史

 

一家独大
计算机是由美国人发明的 美国人需要计算机能够识别英文,所以发明了ASCII码(字符编码表),记录了英文与数字的对应关系
1bytes来表示所有的英文及符号
8bit    256
# 所有的英文字母及符号加起来其实也不会超过128种可能
群雄割据
    中国
    中国人为了计算机能够识别中文发明了GBK码表
        GBK码表
            记录了中文、英文与数字的对应关系
                2bytes来表示中文及符号
                    16bit       65535
                1bytes来表示所有的英文及符号
                    # 生僻字可能会使用更多的bytes来表示
​
日本
    日本人为了计算机能识别日文发明了shift_JIS码
            
韩国
    韩国人为了计算机能识别韩文发明了Euc_kr码
    
天下一统
    群雄割据导致数据交互不通畅(乱码)
    unicode万国码
        兼容万国字符
        所有的字符同意使用2bytes表示 不够增加更多bytes
    utf8
        unicode transformation format
        英文还是用1bytes
        中文改用3bytes
​
内存使用的编码表是unicode 硬盘使用的是utf8
​
'''已经你们只需要记住文本文件编码统一使用utf8即可'''

字符编码实操

1.解决文件乱码的核心
    文件以什么编码存的就以什么编码取
2.编码与解码(重要)
    编码
        将人类的字符按照指定的编码转换成计算机能够识别的数据
        encode()
    解码
        将计算机能否识别的数据按照指定的编码转换成人类能够读懂的字符
        decode()
3.python解释器默认编码
    python2默认的是ASCII码
        在python2中定义字符串在前面加一个字母u
        文件头指定编码
            # -*- conding:utf8 -*-
            name = u'jason'
    python3默认的是utf8码

文件操作

操作系统
    windows mac linux
双击文件
    硬盘转 磁头读取数据
保存文件
    硬盘转 磁头写入数据
 
我们在操作文件的时候其实操作的是硬盘
'''文件其实是操作系统暴露给我们可以简单快捷的操作硬盘的接口'''
​
​
绝对路径与相对路径
    绝对路径
        非常详细的路径描述
            无论什么人什么位置都可以找到
    相对路径
        有一个参考
            只有对应的人才可以找到
​
# res = open(r'a.txt','r',encoding='utf8')
# print(res.read())
# res.close()
​
​
​
# 打开a.txt 使用变量名f指代改文件
# with open(r'a.txt','r',encoding='utf8') as f:
#     print(f.read())  # 读取文件内容
    # with子代码运行结束之后会自动调用close关闭文件资源
# """
# with open(文件路径,读写模式,编码格式) as 变量名:
#     子代码块
# 文件路径是必须的
# 读写模式和编码格式是可选的
# """
​
​
# 如果不指定读写模式 那么默认使用r
# 如果不指定编码格式 那么默认使用当前计算机内部默认编码
"""在中国所有的windows电脑内部默认的编码是gbk"""
with open(r'a.txt') as f:
    print(f.read())  # 读取文件内容
​
​
# 取消转义
# res = r'D:\day08\a.txt'
# res1 = r'D:\day08\n.txt'
# res2 = r'D:\day08\t.txt'
# print(res,res1,res2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值