给定一个UTF-8编码字符串或任意二进制数据的字节数组,
Java可以使用哪些方法来确定它是哪个?
该数组可以通过类似于以下代码生成:
byte[] utf8 = "Hello World".getBytes("UTF-8");
或者,它可能是由类似于以下代码生成的:
byte[] messageContent = new byte[256];
for (int i = 0; i < messageContent.length; i++) {
messageContent[i] = (byte) i;
}
关键是我们不知道数组包含什么,但需要找出才能填写以下函数:
public final String getString(final byte[] dataToProcess) {
// Determine whether dataToProcess contains arbitrary data or a UTF-8 encoded string
// If dataToProcess contains arbitrary data then we will BASE64 encode it and return.
// If dataToProcess contains an encoded string then we will decode it and return.
}
如何将其扩展到还涵盖UTF-16或其他编码机制?