zoukankan      html  css  js  c++  java
  • day8

    字符编码

    计算机内部存储数据都是以二进制数字的形式存储
    	计算机基于电工作 而电信号只有高低电平两种状态
        也就意味着计算机的世界里只能识别两种状态
        我们人为的将高电平定义为数字1
        低电平定义为数字0
       	0	你
        1    我
        
        00	
        01
        10
        11
        
        000
        ...
        
    单位换算(重要)
    	比特位bit(二进制数的个数)
        8bit = 1bytes(字节)
        1024bytes = 1KB
        1024KB = 1MB
        1024MB = 1GB
        1024GB = 1TB
        1024TB = 1PB
       
    字符编码的研究仅限于文本文件(******)
    
    
    为什么我们人类在使用计算机输入字符的时候电脑展示是人类能够看懂的字符
    而计算机内部只识别01二进制
    	00001010			我
        00001101              你
        计算机二进制			设定好的对应关系		人类的字符
        
    字符编码表
    	规定了人类的字符与数字之间的对应关系
    

    字符编码

    一家独大
    	计算机是由美国人发明的 美国人需要计算机能够识别英文
        所以发明了ASCII码(字符编码表)
        	记录了英文与数字的对应关系
            	1bytes来表示所有的英文及符号
        			8bit	256
                     # 所有的英文字母及符号加起来其实也不会超过128种可能
    群雄割据
    	中国
        	中国人为了计算机能够识别中文发明了GBK码
            GBK码表
            	记录了中文、英文与数字的对应关系
                	2bytes来表示中文及符号
                    	16bit       65535
                    1bytes来表示所有的英文及符号
                        # 生僻字可能会使用更多的bytes来表示
            
        日本
        	日本人为了计算机能识别日文发明了shift_JIS码
            shift_JIS码表
            	记录了日文、英文与数字的对应关系
                1bytes来表示所有的英文及符号
                	
        韩国
    		韩国人为了计算机能识别韩文发明了Euc_kr码
            Euc_kr码表
            	记录了韩文、英文与数字的对应关系
                1bytes来表示所有的英文及符号
    天下一统
    	群雄割据导致数据交互不通畅(乱码)
        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:day08a.txt'
    # res1 = r'D:day08
    .txt'
    # res2 = r'D:day08	.txt'
    # print(res,res1,res2)
    
  • 相关阅读:
    Hadoop下面WordCount运行详解
    ubuntu下hadoop环境配置
    ubuntu下的jdk安装
    ASP.NET MVC4中用 BundleCollection使用问题手记
    Lab6: Paxos
    java命令行操作
    Mesos 入门教程
    Docker background
    找实习的日子
    九度 1557:和谐答案 (LIS 变形)
  • 原文地址:https://www.cnblogs.com/zhangjianguoweiwei/p/14950181.html
Copyright © 2011-2022 走看看