gpt4 book ai didi

java - UTF-8 编码与 Base-64 编码

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:07 25 4
gpt4 key购买 nike

我想对一个文件进行编码,它可能是图像或任何 pdf 并将其发送到服务器。我必须遵循哪种类型的编码和解码。 (服务端和客户端都在我们公司,我们可以在两个地方写逻辑)。 UTF-8 编码 在 java 中默认支持。要使用 Base-64 编码,我必须导入外部 jar。对于简单的文本,这两种方式都可以正常工作。我正在使用 tcp 套接字编程。

使用 UTF-8 编码

String str = "This is my Sample application";
String urlEncodedData = URLEncoder.encode(str, "UTF-8"); // Encoding with UTF-8
System.out.println("..after URL Encodingencoding..."+urlEncodedData );
String retrievedData = URLDecoder.decode(urlEncodedData , "UTF-8");// Decoding with UTF-8
System.out.println("..after decoding..."+retrievedData );

使用Base-64(使用apache的commons.codec jar

byte[] b =Base64.encodeBase64(str.getBytes()); //Encoding  base 64
Base64.decodeBase64(b); // Decoding with Base 64

最佳答案

UTF-8 是一种文本编码——一种将文本编码为二进制数据的方法。

Base64 在某些方面恰恰相反 - 它是一种将任意二进制数据编码为 ASCII 文本的方式。

如果您需要将任意二进制数据编码为文本,Base64 是最佳选择 - 您绝不能尝试将任意二进制数据视为 UTF- 8个编码的文本数据。

但是,您首先可以将文件作为二进制数据传输到服务器 - 这取决于您使用的传输方式。

关于java - UTF-8 编码与 Base-64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6792003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com