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

Is sending UTF-8 encoded characters Network Safe?

使用标准 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 字符对二进制数据进行编码。只有在将二进制数据嵌入到旨在传输文本的协议中(例如在电子邮件中嵌入附件)的特定情况下才有必要;通常不需要通过网络传输数据。例如,没有它,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 字符串格式。它不能用于编码任意二进制数据。

控制字符(ASCII 中的 0-31)不受 UTF-8 编码的影响,因此如果您的协议不能安全地传输它们,您将无法使用 UTF-8 解决问题。

UTF-8 是关于将 unicode text 编码为 8 位字节流,而不是转义控制字符。它解决了不同的问题。

请注意,UTF-8 编码的输入是 unicode 文本,而不是随机字节:例如,无法使用 UTF-8 对字节 0x83 进行编码: 你可以做的是将 cp737 编码的希腊字母 "Δ" 编码为 0x83 到 UTF-8,或者你可以将 cp855 编码的俄语字母 "Ѓ" 编码为 0x83转换为 UTF8,但结果会有所不同(“Δ”是 0xCE+0x94,而“Ѓ”是 0xD0+0x83)。