首页 > 其他分享 >字符编码

字符编码

时间:2023-01-18 14:58:01浏览次数:23  
标签:编码 字节 字符 utf8 解码 计算机

字符编码

1.字符编码简介

  • 字符编码只针对文本文件
  • 计算机内部存储数据的本质是二进制 也就是计算机只认识0和1
  • 我们打出来的字能被计算机识别是因为中间有一层转换关系>>字符编码表、

2.字符编码发展的三个阶段

  • 阶段一:一家独大

    由于计算机是美国人发明的 为了可以让计算机识别英文 所以发明了ASCII码

    ASCII码中记录了英文字母跟数字的对应关系>>用1字节来表示一个英文字符

    A-Z:65-90

    a-z:97-122

  • 阶段二:群雄割据

    各国都有自己的字符编码

    中国:GBK码 记录中文、英文与数字的对应关系>>用2个字节来表示一个字符

    日本:shift_JIS码 记录日文、英文与数字的对应关系

    韩国:Euc_kr码 记录韩文、英文与数字的对应关系

    PS:此时各个国家之间编码不一致,不同数据无法直接交互会出现乱码!

  • 阶段三:天下统一

    万国码(unicode):兼容多个多家语言与数字的对应关系 >>用2字节表示一个字符

    后来utf家族发布了优化版:utf8 英文采用1字节 中文采用3字节

    ps:内存使用unicode 硬盘采用utf8

3.字符编码相关操作

只有字符串可以参与编码解码 其他数据类型需要先转成字符换才可以

  • 解决乱码的措施

    1.当初用什么编码存的就用什么编码解码
    2.一个一个切换尝试
    
  • 编码与解码

    编码:人类字符--->计算机字符

    将人类字符按照指定的编码编程计算机可以识别的数字

    encode()

    #encode()编码
    
    s1 = '张三'
    res = s1.encode('utf8')
    print(res)
    #结果为:b'\xe5\xbc\xa0\xe4\xb8\x89'
    
    

    解码:计算机字符--->人类字符

    将计算机可以识别的数字按照指定的编码解成人类可以读懂的字符

    decode()

    #decode()解码
    
    res1 = res.decode('utf8')
    print(res1)
    #结果为:张三
    
    
  • 不同版本解释器的区别

    python2默认的编码是ASCII码 如果想要使用utf8需要:

    1.文件最开头输入:#encoding:utf8

    2.每个字符串前面都要加u print u'我是小美女'

    python3默认就是utf8

标签:编码,字节,字符,utf8,解码,计算机
From: https://www.cnblogs.com/lzy199911/p/17059782.html

相关文章

  • 04 Tcl字符串
    Tcl字符串4.1Tcl将说有的变量值视作字符串,并将他们作为字符串进行保存。命令描述append将值追加到字符串尾binary二进制化字符串format字符串格式化......
  • mysql替换字段指定字符
    1、使用REPLACE()函数UPDATE table SETfield=REPLACE(field,'old_string','new_string')......
  • mysql 格式化字符串时间查询
    select`r`.*from`table_aaa`as`r`leftjoin`table_bbb`as`m`on`r`.`idNo`=`m`.`me_no`where((CONVERT(r.money,DECIMAL(10,2))>=1)and(CONVERT(r.......
  • ⼗六进制字符串与数值类型之间转换
    stringinput="HelloWorld!";char[]values=input.ToCharArray();foreach(charletterinvalues){//Gettheintegralvalueofthecharacter.intvalue=......
  • 递归求字符全排列
    #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=10;charn[N];charpath[N];boolused[N];voiddfs(intu){i......
  • 使用sed 命令查找和替换文件中的字符串的方法总结
    sed命令是什么sed命令表示StreamEditor(流编辑器),用来在Linux上执行基本的文本操作。它可以执行各种功能,如搜索、查找、修改、插入或删除文件。此外,它也可以执行复杂......
  • R 字符串操作大全
    paste函数和paste0()函数连接字符>paste("a",1:3)#默认空格符连接,即sep=""[1]"a1""a2""a3">paste("a",1:3,sep="")#a自动与每个元素连接[1]"a1""......
  • 字符编码
    python解释器与文件本编辑的异同如下#1、相同点:前两个阶段二者完全一致,都是将硬盘中文件的内容读入内存,详解如下python解释器是解释执行文件内容的,因而python解释器具备......
  • 字符串左旋
    第一种 暴力穷举法#include<stdio.h>#include<string.h>voidleft_move(char*arr,intk){inti=0;intlen=strlen(arr);for(i=0;i<k;i++){intj=0;char......
  • mysql查看、修改数据库字符集
    showVARIABLESlike'character%';character_set_client:客户端请求数据的字符集character_set_connection:客户机/服务器连接的字符集character_set_database:默认数据库的......