java - 发送 UTF-8 编码字符网络安全吗?

标签 java networking encoding utf-8 character-encoding

使用标准 Base64 格式进行编码的原因是确保它不会包含任何可能被视为网络控制字符的控制字符。这确保了通过网络传输的另一端接收相同的数据。

在这种情况下,UTF-8 字符编码是否提供与 Base64 相同的功能,即在输出中不提供任何控制字符,以便我们可以通过网络发送它?

最佳答案

The reason for encoding with standard Base64 format is to make sure it won't contain any control characters which may be considered as control characters over network.

上述说法不正确。Base64专门用于使用 64 个可打印 ASCII 字符对二进制数据进行编码。仅在将二进制数据嵌入到旨在传输文本的协议(protocol)中(例如在电子邮件中嵌入附件)的特定情况下才有必要;通过网络传输数据通常不需要它。例如,HTTP 在没有它的情况下也能很好地管理。

In this scenario, Does UTF-8 character encoding provides same as Base64 by not giving any control characters in the output so that we can send it via network?

没有。 UTF-8 是一种 Unicode 字符串格式。它不能用于编码任意二进制数据。

关于java - 发送 UTF-8 编码字符网络安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998779/

相关文章:

java - 无法启动应用程序。无法加载指定的文件/url。如何重建快捷方式?

java - 所有重复的单词

haskell - 如何在 Haskell 的多播连接中指定源地址?

linux - 通过 SSH 连接到 Raspberry Pi,无需端口转发

java - 使用 Webdriver 的 Eclipse for Java 中的字符编码问题

java - train Cv Normal Bayes Classifier opencv 中的组件掩码是什么?

java - dbunit 模式参数不起作用

c# - 获取我们收到 UDP 多播请求的 IP 地址

java - 将字符转换为 UTF-8

java - 如何将 StAX 解析器与元音变音 (äÜÖ) 一起使用?