为什么需要编码解码

为什么需要编码?

当您将数据从您的计算机传输到另一台计算机时,它无法直接传输您看到的数据,例如如果您将“Hello World”从一台计算机发送到另一台计算机,它不能将其传输为“Hello World”,它会将“ Hello World”转换为二进制,可能是这样的

"01001000011001010110110001101100011011111001000000101011101101111011100100110110000010"

因为电线只能传输二进制数据。

或者当您通过电话或互联网通话时,您的语音需要编码为语音频率(以二进制形式存储)。

当它再次返回到另一台计算机时,它将接收到的数据解码为原始格式,二进制转换回“Hello world!” 或返回语音数据

下一个故事是你是如何从“Hello world”中得到上面显示的二进制文件的,这是编码和解码的来源。您可以为字符赋值并传输它们,如下所示。
字符 - 十六进制 - 二进制

一 - 0 - 0000000

b - 1 - 00000001

c - 2 - 00000010

d - 3 - 00000011

e - 4 - 0000100 … 以此类推

所以你可以像上面一样定义你自己的编码集,并告诉坐在其他计算机上的人你使用了上述编码格式,这样当他解码他收到的二进制文件时,他就会完美地得到“Hello World”。

由于这是常见用例,ANSI 为此制定了标准编码格式并要求我们使用它。

最后一个故事是了解不同编码(如 ASCII、UTF-8 等)之间的区别。所以最初的通信数据只包含我们在键盘上看到的字符,所以 ASCII 支持它并包含 256 个字符,其中每个字节代表一个字符,因此 ASCII 编码存在限制,您不能发送中文、日文或泰卢固语,因此引入了支持世界上几乎所有语言的 UTF-8,UTF-8 编码非常智能,并且可以有效地使用内存,以及其他编码。所有的网络浏览器都使用 UTF-8 编码,所以它能够支持不同的语言,所以我们能够看到 Facebook 表情符号和很多其他的。所以如果浏览器使用 ASCII,我们最终只能看到 256 个字符。观看此视频以更好地理解。

为什么需要解码?

看完上面的内容,为什么需要解码就很容易理解了,您需要表达的内容编码后,从一台计算机上传到另一台计算机上后,需要解码为原始格式,不然人怎么理解您想要表达的是什么意思呢?
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 OpenFeign 进行编码解码的过程中,有几个关键的概念需要理解。 1. Encoder(编码器):Encoder 将 Java 对象转换为请求的内容。OpenFeign 提供了默认的编码器,可以根据请求的内容类型自动选择适当的编码器。你也可以自定义编码器来满足特定的需求。 2. Decoder(解码器):Decoder 将响应的内容转换为 Java 对象。OpenFeign 也提供了默认的解码器,根据响应的内容类型自动选择适当的解码器。同样地,你也可以自定义解码器。 3. Content-Type(内容类型):Content-Type 是请求或响应的头部信息之一,用于指定传输的数据类型。在编码解码过程中,需要根据 Content-Type 来选择相应的编码器和解码器。 在使用 OpenFeign 进行编码解码时,你需要配置相应的编码器和解码器。以下是一个使用 JSON 编码解码的示例: 首先,引入相应的依赖: ```xml <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-core</artifactId> <version>版本号</version> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-gson</artifactId> <version>版本号</version> </dependency> ``` 然后,在你的 FeignClient 接口上添加 `@Headers` 注解,并指定 Content-Type 为 "application/json": ```java @Headers("Content-Type: application/json") public interface MyFeignClient { // ... } ``` 接下来,你可以在方法上使用 `@RequestBody` 注解将请求的 Java 对象进行编码,以及使用 `@ResponseBody` 注解将响应的内容进行解码: ```java @RequestMapping(method = RequestMethod.POST) @ResponseBody public MyResponseObject myMethod(@RequestBody MyRequestObject requestObject); ``` 在编写完以上代码之后,OpenFeign 将自动根据请求和响应的 Content-Type 使用适当的编码器和解码器来进行数据的转换。 当然,这只是一个简单的示例,你可以根据实际需求来选择合适的编码器和解码器,并进行相应的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值