有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UTF8编码与Base64编码

我想编码一个文件,它可能是图像或任何pdf文件,并将其发送到服务器。我必须遵循哪种类型的编码和解码。(服务器和客户端都在我们公司。我们可以在这两个地方编写逻辑)<默认情况下,java支持strong>UTF-8编码。要使用Base-64编码,我必须导入外部jar。对于简单的文本,这两种方法都很有效。我正在使用tcpsocket编程

使用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

共 (1) 个答案

  1. # 1 楼答案

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

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

    如果您需要将任意二进制数据编码为文本,Base64是一种方法-您不得尝试将任意二进制数据视为UTF-8编码的文本数据

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