计算机编码格式是怎么回事

计算机的编码方式是指计算机在处理和存储数据时使用的特定编码方式,这些编码方式决定了计算机如何将数据从一种形式转换为另一种形式,以便于计算机能够理解和处理数据。

1. 简单来说,我们可以把计算机编码格式理解为一种“外语”,把文字信息编码成字节数组,让计算机可以读懂。

2. 文字转码案例:

文字信息和编码后的字节数组存在映射关系。根据各国语言的不同字符,存在不同的编码方式,也就存在不同的映射关系。我们最常用的是UTF8编码方式,支持中文以及各种字符。

举个例子:把“你好!”通过UTF8、Unicode两种方式进行编码,输出不同结果:

string a = "你好!";
Console.WriteLine(a);
byte[] utf8Bytes = Encoding.UTF8.GetBytes(a);
foreach (byte b in utf8Bytes)
{
    Console.Write($"{b} ");
}
Console.Write($"\r\n");

byte[] unc8Bytes = Encoding.Unicode.GetBytes(a);
foreach (byte b in unc8Bytes)
{
    Console.Write($"{b} ");
}
Console.Write($"\r\n");

输出结果:

228、189、160、229...一个数字代表一个字节

228转为二进制:11100100(一个字节包含8位,由0、1组成)

3.文本文件转码存储案例:

举个例子:把test.txt分别保存为不同的编码文件。

string content = File.ReadAllText("test.txt");
byte[] utf8Content = Encoding.UTF8.GetBytes(content);
File.WriteAllBytes("testUTF8.txt", utf8Content);

byte[] uniContent = Encoding.Unicode.GetBytes(content);
File.WriteAllBytes("testUNI.txt", uniContent);

byte[] ascContent = Encoding.ASCII.GetBytes(content);
File.WriteAllBytes("testASC.txt", ascContent);

输出结果:

得到的文件大小不同。是因为不同编码方式,采用的字节数量不同。

得到的文件内容,对中文的支持不同。UTF8支持中文字符。

4. 常见的编码方式:

1. ASCII编码

  • 定义:ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种用于将字符映射到数字的编码方式。
  • 特点:ASCII编码使用7位(或8位,最高位为0)表示字符,包括控制字符、数字、字母和常用符号等。由于只有128个编码(或256个,如果考虑最高位为0的扩展),因此ASCII编码在国际化应用中存在局限性。
  • 应用:ASCII编码最初是为美国英语设计的,但后来也被广泛用于其他语言的字符编码,尤其是在处理英文文本时。

2. Unicode编码

  • 定义:Unicode是一个标准的字符编码系统,旨在统一世界上所有字符的编码方式。
  • 特点:Unicode编码由统一字符集(Universal Character Set)定义,其中包含了包括ASCII字符在内的几乎所有已知字符。Unicode编码使用几乎所有语言字符的唯一数字编码,它支持多种编码方式,包括UTF-8、UTF-16和UTF-32等。
  • 应用:Unicode编码在网络、Windows系统和很多大型软件中得到广泛应用,它解决了不同编码标准之间的兼容性问题,使得跨语言、跨平台的文本转换和处理变得更加容易。

3. UTF-8编码

  • 定义:UTF-8(Unicode Transformation Format-8 bits)是Unicode编码的一种实现方式。
  • 特点:UTF-8编码采用1到4个字节表示不同字符,其中ASCII字符仍然使用1个字节表示,而中文(含繁体)等字符则使用更多字节表示。这种变长字节编码方式在存储英文时非常高效,同时也能很好地处理国际化文字。
  • 应用:UTF-8编码在Web开发中非常常见,因为它可以兼容ASCII编码,并且能够有效地处理各种语言的字符。

4. 其他编码方式

除了上述几种常见的编码方式外,计算机还使用了许多其他编码方式,如GB码(包括GB2312、GBK等)、BIG5码(针对繁体汉字的编码)、HZ码(在Internet上广泛使用的汉字编码)等。这些编码方式都是为了满足特定语言或地区的需求而设计的。

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值