首页 > 其他分享 >计算机中的编码和字符集:理解二进制、字节流和常见编码方案

计算机中的编码和字符集:理解二进制、字节流和常见编码方案

时间:2023-04-05 20:55:55浏览次数:40  
标签:字符 字节 编码 二进制 字符集 Unicode 编码方案

编码:将字符串转换到字节串的过程。
解码:将字节串转换成字符串的过程。

GB2312 既是一种中文字符集,也是以 ANSI 标准为基础,实现的中文编码方案。它主要用于简体中文编码,是中国国家标准,于1981年发布。GBK 是 GB2312 的超集。

Unicode是一种字符集,定义了所有字符的唯一标识符(码点),同时也规定了这些字符的名称、属性等元数据。Unicode标准则是为了保证字符在各种不同的平台、应用和语言之间的互通性而制定的。

UTF-8是Unicode字符集的一种编码方案,它将Unicode字符以一至四个字节的可变长度进行编码,可以在保证完整性的同时,对ASCII字符进行兼容处理。因此,UTF-8成为了目前最常用的Unicode编码方案之一。

通过上面的知识,我们可以总结出以下结论:

在计算机中存储的文件,一般都是以字节流的形式存储的,底层基础是二进制。当我们通过16进制查看器打开文件时,其实是将二进制数按照16进制数的方式进行显示。在进行传输时,也是以二进制流的形式进行传输。打开一个文件其实是将字节流(不过是一种数字表现形式,本质上和 int 没什么区别)转换为字符串的过程,这个过程需要使用特定的“编码方案”进行解码。同样,保存一个文件其实也是一个编码的过程,也需要特定的“编码方案”进行编码。常用的文件编码格式“UTF-8”是 Unicode 字符集编码方案之一,同时也是 Unicode 标准的实现。

• 计算机中存储的文件一般是以字节序列的形式存储的,而字节序列通常都是二进制的。因此,我们可以说计算机中存储文件的底层基础是二进制。
• 在传输文件时,常常使用的是二进制流的传输方式,因为字节流本身就是一种二进制的表现形式。
• 当我们打开一个文件时,程序需要将文件中的字节流转换为字符串进行处理,这个过程需要使用特定的字符编码(例如UTF-8、GBK等)进行解码。相反,当我们保存一个文件时,程序需要将字符串转换为字节流进行保存,这个过程需要使用特定的字符编码进行编码。
• 除了UTF-8之外,还有其他常见的字符编码格式,例如UTF-16、GB2312、ISO-8859-1等。

在计算机领域中,”码“这个字通常指的是编码方案,也就是将字符转换为二进制表示的方式。而二进制码或字节码通常是指在计算机中存储和处理数据时所用的二进制表示形式。

我们可以将计算机存储的二进制数通过特定的编码方案(如UTF-8)转换为可读的字符,这个过程称为解码。同样地,我们也可以将字符通过编码方案转换为二进制数,这个过程称为编码。在计算机内部,所有的数据都是以二进制形式进行处理的,无论是存储、传输还是计算等操作都是基于二进制的。

标签:字符,字节,编码,二进制,字符集,Unicode,编码方案
From: https://www.cnblogs.com/nwgdk/p/17290867.html

相关文章

  • 28 岁字节程序员退休,财务自由
    阅读本文大概需要2.9分钟。今天互联网热议最大的一个话题,莫过于字节跳动一28岁程序员大佬,实现财务自由退休了,准备旅居日本经营温泉酒店,让无数人羡慕嫉妒恨啊。这个程序员大佬的名字就不说了,给大家简单说下他的经历吧。1、深圳中学(05-08),高考之后,开始学习写代码;2、暨南大学(08-......
  • 字节码引用检测原理与实战
    一、字节码与引用检测1.1Java字节码本章中的字节码重点研究Java字节码,Java字节码(Javabytecode)是Java虚拟机执行的一种指令格式。可以通过javap-c-vxxx.class(Class文件路径)命令来查看一个Class对应的字节码文件,如下图所示:1.2字节码检测字节码检测本质就是对.java或.kt文件......
  • C语言字符串IP转4字节
    点击查看代码#include<stdio.h>#include<string.h>voidstr2ip(char*in,unsignedchar*out){ inti; inttmp[4]={0}; sscanf(in,"%d.%d.%d.%d",tmp,tmp+1,tmp+2,tmp+3); for(i=0;i<4;i++) { out[i]=tmp[i]&0x......
  • Oracle数据库中的字节序格式是什么?
    前言:本文是对这篇博客WhatistheendianformatinOracledatabases?[1]的翻译,如有翻译不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢! 英文地址:https://dbtut.com/index.php/2019/06/27/what-is-the-endian-format-in-oracle-databases/什么是字节......
  • 字节对齐
    原文:https://blog.csdn.net/cclethe/article/details/79659590(稍有修改)基本概念许多计算机系统对基本数据类型合法地址做出了一些限制,要求某种类型对象的地址必须是某个值K(通常是2,4或8)的倍数。这种对齐限制简化了形成处理器和存储器系统之间的接口的硬件设计。对齐跟数据在内存......
  • mysql修改表字符集
    briefmysql表字符集修正linkhttps://blog.csdn.net/qq_17555933/article/details/101445526altertablexxxconverttocharactersetutf8collateutf8_bin;alte......
  • linux下串口通讯参考及接收始最多为8个字节
    Linux下RS485通讯测试,接收的数据字节只有8个。解决方法:关键代码:structtermiosoptions;if(0!=tcgetattr(s_fd,&options)) {  printf("eadrs485termioserror!......
  • C#对象与字节数组互相转换
    publicstaticbyte[]ObjectToByteArray(Objectobj){BinaryFormatterbf=newBinaryFormatter();using(varms=newMemoryS......
  • 字节对齐
    引用:https://www.cnblogs.com/sky-heaven/p/4137770.html在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对......
  • [oeasy]python0115_西里尔字符集_Cyrillic_俄文字符编码_KOI_8859系列
    各语言字符编码回忆上次内容上次回顾了非ascii的拉丁字符编码的进化过程0-127是ascii的领域西欧、北欧语言大多使用拉丁字符由iso组织制定iso-8859-1北欧原来不是......