バイト配列がUTF-8でエンコードされた文字列または任意のバイナリデータである場合、どのアプローチを使用すればJavaのであるかを判断できますか?バイト配列にJavaでUnicode文字列が含まれているかどうかを確認するにはどうすればよいですか?
配列は、のようなコードによって生成されることがあります。重要な点は、我々は何を知っていないということです
byte[] messageContent = new byte[256];
for (int i = 0; i < messageContent.length; i++) {
messageContent[i] = (byte) i;
}
:代わりに、のようなコードによって生成された可能性が
byte[] utf8 = "Hello World".getBytes("UTF-8");
配列は含まれていますが、次の関数を記入するために見つけ出す必要があります:
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や他のコード化メカニズムについても、これをどのように拡張するのでしょうか?
同様の質問エドワード・ワイルドからのいくつかの有用なリンクを持っています - http://stackoverflow.com/questions/377294/howto-identify-utf- 8エンコードされた文字列 – JonoW